瀏覽代碼

Updating to use hypercored

Bob Mottram 7 年之前
父節點
當前提交
12f591091d
共有 1 個檔案被更改,包括 34 行新增77 行删除
  1. 34
    77
      src/freedombone-app-datserver

+ 34
- 77
src/freedombone-app-datserver 查看文件

@@ -77,21 +77,22 @@ function reconfigure_datserver {
77 77
     echo -n ''
78 78
 }
79 79
 
80
-function datserver_add_url {
80
+function datserver_add_dat {
81 81
     data=$(mktemp 2>/dev/null)
82
-    dialog --title $"Add a file to dat using its URL" \
82
+    dialog --title $"Add a dat" \
83 83
            --backtitle $"Freedombone Control Panel" \
84
-           --inputbox $"File URL" 8 70 2>"$data"
84
+           --inputbox $"dat link:" 8 70 2>"$data"
85 85
     sel=$?
86 86
     case $sel in
87 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 96
                 fi
96 97
             fi
97 98
             ;;
@@ -99,44 +100,9 @@ function datserver_add_url {
99 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 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 107
     while true
142 108
     do
@@ -147,11 +113,11 @@ function configure_interactive_datserver {
147 113
            break
148 114
         fi
149 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 122
         esac
157 123
     done
@@ -272,6 +238,16 @@ function install_datserver {
272 238
     apt-get -yq install wget
273 239
 
274 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 251
     if ! npm install -g dat@$DATSERVER_DAT_VERSION; then
276 252
         exit 2468736
277 253
     fi
@@ -298,43 +274,24 @@ function install_datserver {
298 274
         exit 9568356
299 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 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 282
       echo '';
323 283
       echo '[Service]';
324
-      echo 'Type=simple';
325 284
       echo 'User=datserver';
326 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 287
       echo 'Restart=always';
288
+      echo "WorkingDirectory=$DATSERVER_DIRECTORY";
332 289
       echo 'StandardError=syslog';
333 290
       echo '';
334 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 294
     systemctl enable datserver
337
-    chown -R datserver:datserver "$DATSERVER_DIRECTORY"
338 295
     systemctl start datserver
339 296
 
340 297
     APP_INSTALLED=1