|
@@ -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
|