Selaa lähdekoodia

Updating to use hypercored

Bob Mottram 7 vuotta sitten
vanhempi
commit
12f591091d
1 muutettua tiedostoa jossa 34 lisäystä ja 77 poistoa
  1. 34
    77
      src/freedombone-app-datserver

+ 34
- 77
src/freedombone-app-datserver Näytä tiedosto

77
     echo -n ''
77
     echo -n ''
78
 }
78
 }
79
 
79
 
80
-function datserver_add_url {
80
+function datserver_add_dat {
81
     data=$(mktemp 2>/dev/null)
81
     data=$(mktemp 2>/dev/null)
82
-    dialog --title $"Add a file to dat using its URL" \
82
+    dialog --title $"Add a dat" \
83
            --backtitle $"Freedombone Control Panel" \
83
            --backtitle $"Freedombone Control Panel" \
84
-           --inputbox $"File URL" 8 70 2>"$data"
84
+           --inputbox $"dat link:" 8 70 2>"$data"
85
     sel=$?
85
     sel=$?
86
     case $sel in
86
     case $sel in
87
         0)
87
         0)
88
-            file_url=$(<"$data")
89
-            if [ "$file_url" ]; then
90
-                if [ ${#file_url} -gt 5 ]; then
91
-                    clear
92
-                    cd $DATSERVER_DIRECTORY || return
93
-                    wget "$file_url"
94
-                    chown -R datserver:datserver $DATSERVER_DIRECTORY/*
88
+            dat_link=$(<"$data")
89
+            if [ "$dat_link" ]; then
90
+                if [ ${#dat_link} -gt 5 ]; then
91
+                    if ! grep -q "$dat_link" $DATSERVER_DIRECTORY/feeds; then
92
+                        echo "$dat_link" >> $DATSERVER_DIRECTORY/feeds
93
+                        chown -R datserver:datserver $DATSERVER_DIRECTORY/feeds
94
+                        systemctl restart datserver
95
+                    fi
95
                 fi
96
                 fi
96
             fi
97
             fi
97
             ;;
98
             ;;
99
     rm -f "$data"
100
     rm -f "$data"
100
 }
101
 }
101
 
102
 
102
-function datserver_add_file {
103
-    read_config_param MY_USERNAME
104
-
105
-    selected_file=$(dialog --title "Choose a file to store within dat" --fselect "/home/$MY_USERNAME/" 30 60)
106
-    if [ ! "$selected_file" ]; then
107
-        return
108
-    fi
109
-    if [ ! -f "$selected_file" ]; then
110
-        return
111
-    fi
112
-    if [[ "$selected_file" == "$DATSERVER_DIRECTORY"* ]]; then
113
-        return
114
-    fi
115
-
116
-    clear
117
-    echo ''
118
-    echo $"Copying $selected_file"
119
-    cp "$selected_file" $DATSERVER_DIRECTORY
120
-    chown -R datserver:datserver $DATSERVER_DIRECTORY/*
121
-}
122
-
123
-function datserver_show_address {
124
-    cd $DATSERVER_DIRECTORY || return
125
-    dat_address=$(dat status | grep "dat:")
126
-    clear
127
-    echo ''
128
-    echo "$dat_address"
129
-    echo ''
130
-    echo -n "$dat_address" | qrencode -t UTF8
131
-    echo ''
132
-    echo ' '
133
-    # shellcheck disable=SC2034
134
-    read -n1 -r -p $"Press any key to continue..." key
135
-}
136
-
137
 function configure_interactive_datserver {
103
 function configure_interactive_datserver {
138
-    W=(1 $"Add a local file"
139
-       2 $"Add a file from its URL")
104
+    W=(1 $"Add a dat"
105
+       2 $"Browse or edit feeds")
140
 
106
 
141
     while true
107
     while true
142
     do
108
     do
147
            break
113
            break
148
         fi
114
         fi
149
         case $selection in
115
         case $selection in
150
-            1) datserver_show_address
116
+            1) datserver_add_dat
151
                ;;
117
                ;;
152
-            2) datserver_add_file
153
-               ;;
154
-            3) datserver_add_url
118
+            2) editor $DATSERVER_DIRECTORY/feeds
119
+               chown -R datserver:datserver $DATSERVER_DIRECTORY/feeds
120
+               systemctl restart datserver
155
                ;;
121
                ;;
156
         esac
122
         esac
157
     done
123
     done
272
     apt-get -yq install wget
238
     apt-get -yq install wget
273
 
239
 
274
     install_nodejs datserver
240
     install_nodejs datserver
241
+
242
+    if ! npm install -g lil-pids; then
243
+        echo $'unable to install lil-pids'
244
+        exit 8456721
245
+    fi
246
+    if [ ! -f /root/.npm-global/bin/lil-pids ]; then
247
+        echo $'lil-pids was not installed'
248
+        exit 5628747
249
+    fi
250
+
275
     if ! npm install -g dat@$DATSERVER_DAT_VERSION; then
251
     if ! npm install -g dat@$DATSERVER_DAT_VERSION; then
276
         exit 2468736
252
         exit 2468736
277
     fi
253
     fi
298
         exit 9568356
274
         exit 9568356
299
     fi
275
     fi
300
 
276
 
301
-    cd $DATSERVER_DIRECTORY || exit 3578635
302
-    echo -e "\\n\\n" | dat create
303
-    if [ ! -d $DATSERVER_DIRECTORY/.dat ]; then
304
-        echo $'dat was not created'
305
-        exit 753563
306
-    fi
307
-    dat_address=$(dat status | grep "dat:")
308
-    if [ ! "$dat_address" ]; then
309
-        echo $'dat address could not be found'
310
-        exit 235479763
311
-    fi
312
-    if [ ${#dat_address} -lt 10 ]; then
313
-        echo $'dat address is too short'
314
-        exit 4789264359
315
-    fi
316
-    echo "$dat_address created"
277
+    echo "/root/.npm-global/bin/hypercored --cwd $DATSERVER_DIRECTORY" > $DATSERVER_DIRECTORY/services
278
+    chown -R datserver:datserver "$DATSERVER_DIRECTORY"
317
 
279
 
318
     { echo '[Unit]';
280
     { echo '[Unit]';
319
-      echo 'Description=datserver';
320
-      echo 'After=syslog.target';
321
-      echo 'After=network.target';
281
+      echo 'After=syslog.target network.target remote-fs.target nss-lookup.target';
322
       echo '';
282
       echo '';
323
       echo '[Service]';
283
       echo '[Service]';
324
-      echo 'Type=simple';
325
       echo 'User=datserver';
284
       echo 'User=datserver';
326
       echo 'Group=datserver';
285
       echo 'Group=datserver';
327
-      echo "WorkingDirectory=$DATSERVER_DIRECTORY";
328
-      echo "ExecStart=/root/.npm-global/bin/dat share $DATSERVER_DIRECTORY";
329
-      echo 'Environment=NODE_ENV=production';
330
-      echo 'Environment=USER=datserver';
286
+      echo "ExecStart=/root/.npm-global/bin/lil-pids $DATSERVER_DIRECTORY/services $DATSERVER_DIRECTORY/pids";
331
       echo 'Restart=always';
287
       echo 'Restart=always';
288
+      echo "WorkingDirectory=$DATSERVER_DIRECTORY";
332
       echo 'StandardError=syslog';
289
       echo 'StandardError=syslog';
333
       echo '';
290
       echo '';
334
       echo '[Install]';
291
       echo '[Install]';
335
-      echo 'WantedBy=multi-user.target'; } >> "/etc/systemd/system/datserver.service"
292
+      echo 'WantedBy=multi-user.target'; } > /etc/systemd/system/datserver.service
293
+
336
     systemctl enable datserver
294
     systemctl enable datserver
337
-    chown -R datserver:datserver "$DATSERVER_DIRECTORY"
338
     systemctl start datserver
295
     systemctl start datserver
339
 
296
 
340
     APP_INSTALLED=1
297
     APP_INSTALLED=1