瀏覽代碼

Remove hardcoded variants

Bob Mottram 8 年之前
父節點
當前提交
16123cb9d7

+ 7
- 5
src/freedombone 查看文件

259
         exit 1
259
         exit 1
260
     fi
260
     fi
261
     if [ ! "$DEFAULT_DOMAIN_NAME" ]; then
261
     if [ ! "$DEFAULT_DOMAIN_NAME" ]; then
262
-        if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
262
+        if [[ $SYSTEM_TYPE != "mesh"* ]]; then
263
             echo 'No default domain specified'
263
             echo 'No default domain specified'
264
             show_help
264
             show_help
265
             exit 2
265
             exit 2
270
         show_help
270
         show_help
271
         exit 3
271
         exit 3
272
     fi
272
     fi
273
-    if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
273
+    if [[ $SYSTEM_TYPE != "mesh"* ]]; then
274
         if [[ $ONION_ONLY == "no" ]]; then
274
         if [[ $ONION_ONLY == "no" ]]; then
275
             if [ ! $DDNS_USERNAME ]; then
275
             if [ ! $DDNS_USERNAME ]; then
276
                 echo $'Please provide the username for your dynamic DNS provider with the --ddnsuser option'
276
                 echo $'Please provide the username for your dynamic DNS provider with the --ddnsuser option'
282
             fi
282
             fi
283
         fi
283
         fi
284
     fi
284
     fi
285
+
285
     if [ ! $SYSTEM_TYPE ]; then
286
     if [ ! $SYSTEM_TYPE ]; then
286
-        SYSTEM_TYPE=$VARIANT_FULL
287
+        SYSTEM_TYPE=$'full'
287
     fi
288
     fi
288
-    if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_DEVELOPER && $SYSTEM_TYPE != $VARIANT_MESH && $SYSTEM_TYPE != $VARIANT_FULL ]]; then
289
+
290
+    if [[ $(is_valid_variant) == "0" ]]; then
289
         echo $"'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant."
291
         echo $"'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant."
290
-        exit 30
292
+        exit 367245
291
     fi
293
     fi
292
 }
294
 }
293
 
295
 

+ 1
- 1
src/freedombone-app-dlna 查看文件

198
         echo "media_dir=V,$USB_MOUNT/Videos" >> /etc/minidlna.conf
198
         echo "media_dir=V,$USB_MOUNT/Videos" >> /etc/minidlna.conf
199
     fi
199
     fi
200
     sed -i 's/#root_container=./root_container=B/g' /etc/minidlna.conf
200
     sed -i 's/#root_container=./root_container=B/g' /etc/minidlna.conf
201
-    if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
201
+    if [[ $SYSTEM_TYPE != "mesh"* ]]; then
202
         sed -i 's/#network_interface=/network_interface=eth0/g' /etc/minidlna.conf
202
         sed -i 's/#network_interface=/network_interface=eth0/g' /etc/minidlna.conf
203
     else
203
     else
204
         sed -i 's/#network_interface=/network_interface=$WIFI_INTERFACE/g' /etc/minidlna.conf
204
         sed -i 's/#network_interface=/network_interface=$WIFI_INTERFACE/g' /etc/minidlna.conf

+ 0
- 7
src/freedombone-app-irc 查看文件

295
     fi
295
     fi
296
 
296
 
297
     DEFAULTDOMAIN=${DEFAULT_DOMAIN_NAME}
297
     DEFAULTDOMAIN=${DEFAULT_DOMAIN_NAME}
298
-    if [[ ${SYSTEM_TYPE} == "$VARIANT_MESH" ]]; then
299
-        DEFAULTDOMAIN="${DEFAULT_DOMAIN_NAME}.local"
300
-    fi
301
 
298
 
302
     # create a login password if needed
299
     # create a login password if needed
303
     if [ ! ${IRC_PASSWORD} ]; then
300
     if [ ! ${IRC_PASSWORD} ]; then
340
     if [ ${IRC_PASSWORD} ]; then
337
     if [ ${IRC_PASSWORD} ]; then
341
         sed -i "0,/RE/s/Password =.*/Password =$IRC_PASSWORD/" /etc/ngircd/ngircd.conf
338
         sed -i "0,/RE/s/Password =.*/Password =$IRC_PASSWORD/" /etc/ngircd/ngircd.conf
342
     fi
339
     fi
343
-    # If we are on a mesh then DNS is not available
344
-    if [[ ${SYSTEM_TYPE} == "$VARIANT_MESH" ]]; then
345
-        sed -i "s/;DNS =.*/DNS = no/g" /etc/ngircd/ngircd.conf
346
-    fi
347
     # upgrade a cypher
340
     # upgrade a cypher
348
     sed -i 's|SECURE128|SECURE256|g' /etc/ngircd/ngircd.conf
341
     sed -i 's|SECURE128|SECURE256|g' /etc/ngircd/ngircd.conf
349
     mkdir /var/run/ircd
342
     mkdir /var/run/ircd

+ 2
- 4
src/freedombone-app-mumble 查看文件

236
 
236
 
237
     sed -i "s|welcometext=.*|welcometext=\"<br />Welcome to $DEFAULT_DOMAIN_NAME <b>mumble</b>.<br />Chat freely!<br />\"|g" /etc/mumble-server.ini
237
     sed -i "s|welcometext=.*|welcometext=\"<br />Welcome to $DEFAULT_DOMAIN_NAME <b>mumble</b>.<br />Chat freely!<br />\"|g" /etc/mumble-server.ini
238
 
238
 
239
-    if [[ $MUMBLE_SERVER_PASSWORD && $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
239
+    if [[ $MUMBLE_SERVER_PASSWORD ]]; then
240
         sed -i "s|serverpassword=.*|serverpassword=$MUMBLE_SERVER_PASSWORD|g" /etc/mumble-server.ini
240
         sed -i "s|serverpassword=.*|serverpassword=$MUMBLE_SERVER_PASSWORD|g" /etc/mumble-server.ini
241
     fi
241
     fi
242
 
242
 
272
         echo '=============' >> /home/$MY_USERNAME/README
272
         echo '=============' >> /home/$MY_USERNAME/README
273
         echo $"Mumble onion domain:$MUMBLE_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
273
         echo $"Mumble onion domain:$MUMBLE_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
274
         echo $'Mumble server username: mumble-server' >> /home/$MY_USERNAME/README
274
         echo $'Mumble server username: mumble-server' >> /home/$MY_USERNAME/README
275
-        if [[ $SYSTEM_TYPE != "VARIANT_MESH" ]]; then
276
-            echo $"Mumble server password: $MUMBLE_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
277
-        fi
275
+        echo $"Mumble server password: $MUMBLE_SERVER_PASSWORD" >> /home/$MY_USERNAME/README
278
         echo '' >> /home/$MY_USERNAME/README
276
         echo '' >> /home/$MY_USERNAME/README
279
         echo $'To connect to the Mumble server use your username and the server password shown above.' >> /home/$MY_USERNAME/README
277
         echo $'To connect to the Mumble server use your username and the server password shown above.' >> /home/$MY_USERNAME/README
280
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
278
         chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README

+ 0
- 3
src/freedombone-app-searx 查看文件

117
 
117
 
118
 function install_searx {
118
 function install_searx {
119
     # Note: currently socks5 outgoing proxies to other search engines does not work
119
     # Note: currently socks5 outgoing proxies to other search engines does not work
120
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
121
-        return
122
-    fi
123
     if [ ! -d /etc/nginx ]; then
120
     if [ ! -d /etc/nginx ]; then
124
         echo $'Webserver is not installed'
121
         echo $'Webserver is not installed'
125
         exit 62429
122
         exit 62429

+ 1
- 1
src/freedombone-app-tox 查看文件

336
     fi
336
     fi
337
     make install
337
     make install
338
 
338
 
339
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
339
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
340
         toxavahi
340
         toxavahi
341
 
341
 
342
         # publish regularly
342
         # publish regularly

+ 17
- 20
src/freedombone-base-email 查看文件

83
 }
83
 }
84
 
84
 
85
 function configure_firewall_for_email {
85
 function configure_firewall_for_email {
86
-    if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
87
-        return
88
-    fi
89
     if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
86
     if grep -Fxq "configure_firewall_for_email" $COMPLETION_FILE; then
90
         return
87
         return
91
     fi
88
     fi
114
     # encrypts incoming mail using your GPG public key
111
     # encrypts incoming mail using your GPG public key
115
     # so even if an attacker gains access to the data at rest they still need
112
     # so even if an attacker gains access to the data at rest they still need
116
     # to know your GPG key password to be able to read anything
113
     # to know your GPG key password to be able to read anything
117
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
114
+    if [ ! -d /etc/exim4 ]; then
118
         return
115
         return
119
     fi
116
     fi
120
 
117
 
163
     # encrypts outgoing mail using your GPG public key
160
     # encrypts outgoing mail using your GPG public key
164
     # so even if an attacker gains access to the data at rest they still need
161
     # so even if an attacker gains access to the data at rest they still need
165
     # to know your GPG key password to be able to read sent mail
162
     # to know your GPG key password to be able to read sent mail
166
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
163
+    if [ ! -d /etc/exim4 ]; then
167
         return
164
         return
168
     fi
165
     fi
169
     if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
166
     if grep -Fxq "encrypt_outgoing_email" $COMPLETION_FILE; then
210
 }
207
 }
211
 
208
 
212
 function encrypt_all_email {
209
 function encrypt_all_email {
213
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
210
+    if [ ! -d /etc/exim4 ]; then
214
         return
211
         return
215
     fi
212
     fi
216
     if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
213
     if [[ $GPG_ENCRYPT_STORED_EMAIL != "yes" ]]; then
252
 }
249
 }
253
 
250
 
254
 function email_client {
251
 function email_client {
255
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
252
+    if [ ! -d /etc/exim4 ]; then
256
         return
253
         return
257
     fi
254
     fi
258
     if grep -Fxq "email_client" $COMPLETION_FILE; then
255
     if grep -Fxq "email_client" $COMPLETION_FILE; then
406
 }
403
 }
407
 
404
 
408
 function email_archiving {
405
 function email_archiving {
409
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
406
+    if [ ! -d /etc/exim4 ]; then
410
         return
407
         return
411
     fi
408
     fi
412
 
409
 
469
 }
466
 }
470
 
467
 
471
 function create_public_mailing_list {
468
 function create_public_mailing_list {
472
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
469
+    if [ ! -d /etc/exim4 ]; then
473
         return
470
         return
474
     fi
471
     fi
475
     if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
472
     if grep -Fxq "create_public_mailing_list" $COMPLETION_FILE; then
566
 }
563
 }
567
 
564
 
568
 function create_private_mailing_list {
565
 function create_private_mailing_list {
569
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
566
+    if [ ! -d /etc/exim4 ]; then
570
         return
567
         return
571
     fi
568
     fi
572
     # This installation doesn't work, results in ruby errors
569
     # This installation doesn't work, results in ruby errors
638
 }
635
 }
639
 
636
 
640
 function import_email {
637
 function import_email {
641
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
638
+    if [ ! -d /etc/exim4 ]; then
642
         return
639
         return
643
     fi
640
     fi
644
     EMAIL_COMPLETE_MSG=$"
641
     EMAIL_COMPLETE_MSG=$"
648
      25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}
645
      25, 587, 465, 993 and 2222 to the ${PROJECT_NAME}
649
 "
646
 "
650
     if grep -Fxq "import_email" $COMPLETION_FILE; then
647
     if grep -Fxq "import_email" $COMPLETION_FILE; then
651
-        if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
648
+        if [[ $SYSTEM_TYPE == "mail"* ]]; then
652
             function_check backup_to_friends_servers
649
             function_check backup_to_friends_servers
653
             backup_to_friends_servers
650
             backup_to_friends_servers
654
 
651
 
681
         fi
678
         fi
682
     fi
679
     fi
683
     echo 'import_email' >> $COMPLETION_FILE
680
     echo 'import_email' >> $COMPLETION_FILE
684
-    if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
681
+    if [[ $SYSTEM_TYPE == "mail"* ]]; then
685
         function_check backup_to_friends_servers
682
         function_check backup_to_friends_servers
686
         backup_to_friends_servers
683
         backup_to_friends_servers
687
 
684
 
710
 }
707
 }
711
 
708
 
712
 function install_email {
709
 function install_email {
713
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
710
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
714
         return
711
         return
715
     fi
712
     fi
716
     if grep -Fxq "install_email" $COMPLETION_FILE; then
713
     if grep -Fxq "install_email" $COMPLETION_FILE; then
940
 }
937
 }
941
 
938
 
942
 function create_procmail {
939
 function create_procmail {
943
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
940
+    if [ ! -d /etc/exim4 ]; then
944
         return
941
         return
945
     fi
942
     fi
946
     if grep -Fxq "create_procmail" $COMPLETION_FILE; then
943
     if grep -Fxq "create_procmail" $COMPLETION_FILE; then
983
 }
980
 }
984
 
981
 
985
 function spam_filtering {
982
 function spam_filtering {
986
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
983
+    if [ ! -d /etc/exim4 ]; then
987
         return
984
         return
988
     fi
985
     fi
989
     if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
986
     if grep -Fxq "spam_filtering" $COMPLETION_FILE; then
1144
 }
1141
 }
1145
 
1142
 
1146
 function configure_imap {
1143
 function configure_imap {
1147
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
1144
+    if [ ! -d /etc/exim4 ]; then
1148
         return
1145
         return
1149
     fi
1146
     fi
1150
     if grep -Fxq "configure_imap" $COMPLETION_FILE; then
1147
     if grep -Fxq "configure_imap" $COMPLETION_FILE; then
1230
 }
1227
 }
1231
 
1228
 
1232
 function configure_imap_client_certs {
1229
 function configure_imap_client_certs {
1233
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
1230
+    if [ ! -d /etc/exim4 ]; then
1234
         return
1231
         return
1235
     fi
1232
     fi
1236
     if grep -Fxq "configure_imap_client_certs" $COMPLETION_FILE; then
1233
     if grep -Fxq "configure_imap_client_certs" $COMPLETION_FILE; then
1312
 }
1309
 }
1313
 
1310
 
1314
 function create_gpg_subkey {
1311
 function create_gpg_subkey {
1315
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
1312
+    if [ ! -d /etc/exim4 ]; then
1316
         return
1313
         return
1317
     fi
1314
     fi
1318
     if grep -Fxq "create_gpg_subkey" $COMPLETION_FILE; then
1315
     if grep -Fxq "create_gpg_subkey" $COMPLETION_FILE; then
1380
 }
1377
 }
1381
 
1378
 
1382
 function configure_gpg {
1379
 function configure_gpg {
1383
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
1380
+    if [ ! -d /etc/exim4 ]; then
1384
         return
1381
         return
1385
     fi
1382
     fi
1386
     if grep -Fxq "configure_gpg" $COMPLETION_FILE; then
1383
     if grep -Fxq "configure_gpg" $COMPLETION_FILE; then

+ 51
- 54
src/freedombone-base-tripwire 查看文件

37
 }
37
 }
38
 
38
 
39
 function remove_tripwire {
39
 function remove_tripwire {
40
-	if ! grep -Fxq "tripwire" $COMPLETION_FILE; then
41
-		return
42
-	fi
43
-	apt-get -y remove --purge tripwire
44
-	if [ -d /etc/tripwire ]; then
45
-		rm -rf /etc/tripwire
46
-	fi
47
-	rm /usr/bin/reset-tripwire
48
-	sed -i '/tripwire/d' $COMPLETION_FILE
40
+    if ! grep -Fxq "tripwire" $COMPLETION_FILE; then
41
+        return
42
+    fi
43
+    apt-get -y remove --purge tripwire
44
+    if [ -d /etc/tripwire ]; then
45
+        rm -rf /etc/tripwire
46
+    fi
47
+    rm /usr/bin/reset-tripwire
48
+    sed -i '/tripwire/d' $COMPLETION_FILE
49
 }
49
 }
50
 
50
 
51
 function install_tripwire {
51
 function install_tripwire {
52
-	if grep -Fxq "install_tripwire" $COMPLETION_FILE; then
53
-		return
54
-	fi
55
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
56
-		return
57
-	fi
58
-	apt-get -y install tripwire
59
-	apt-get -y autoremove
60
-	cd /etc/tripwire
61
-	cp site.key $DEFAULT_DOMAIN_NAME-site.key
62
-	echo '*** Installing intrusion detection ***'
63
-	echo '
52
+    if grep -Fxq "install_tripwire" $COMPLETION_FILE; then
53
+        return
54
+    fi
55
+    apt-get -y install tripwire
56
+    apt-get -y autoremove
57
+    cd /etc/tripwire
58
+    cp site.key $DEFAULT_DOMAIN_NAME-site.key
59
+    echo '*** Installing intrusion detection ***'
60
+    echo '
64
 
61
 
65
 ' | tripwire --init
62
 ' | tripwire --init
66
 
63
 
67
-	# make a script for easy resetting of the tripwire
68
-	echo '#!/bin/sh' > /usr/bin/reset-tripwire
69
-	echo 'tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt' >> /usr/bin/reset-tripwire
70
-	chmod +x /usr/bin/reset-tripwire
64
+    # make a script for easy resetting of the tripwire
65
+    echo '#!/bin/sh' > /usr/bin/reset-tripwire
66
+    echo 'tripwire --update-policy --secure-mode low /etc/tripwire/twpol.txt' >> /usr/bin/reset-tripwire
67
+    chmod +x /usr/bin/reset-tripwire
71
 
68
 
72
-	sed -i 's/SYSLOGREPORTING.*/SYSLOGREPORTING =false/g' /etc/tripwire/twcfg.txt
73
-	# only send emails if something has changed
74
-	sed -i 's|MAILNOVIOLATIONS.*|MAILNOVIOLATIONS = false|g' /etc/tripwire/twcfg.txt
75
-	sed -i '/# These files change the behavior of the root account/,/}/ s/.*//g' /etc/tripwire/twpol.txt
76
-	sed -i 's|/etc/rc.boot.*||g' /etc/tripwire/twpol.txt
77
-	# Don't show any changes to /proc
78
-	sed -i 's|/proc.*||g' /etc/tripwire/twpol.txt
79
-	# Don't report log changes
80
-	sed -i 's|/var/log.*||g' /etc/tripwire/twpol.txt
81
-	# Ignore /etc/tripwire
82
-	if ! grep -q '!/etc/tripwire' /etc/tripwire/twpol.txt; then
83
-		sed -i '\|/etc\t\t->.*|a\    !/etc/tripwire ;' /etc/tripwire/twpol.txt
84
-	fi
85
-	# ignore tt-rss cache
86
-	if ! grep -q '!/etc/share/tt-rss/cache' /etc/tripwire/twpol.txt; then
87
-		sed -i '\|/etc\t\t->.*|a\    !/etc/share/tt-rss/cache ;' /etc/tripwire/twpol.txt
88
-	fi
89
-	if ! grep -q '!/etc/share/tt-rss/lock' /etc/tripwire/twpol.txt; then
90
-		sed -i '\|/etc\t\t->.*|a\    !/etc/share/tt-rss/lock ;' /etc/tripwire/twpol.txt
91
-	fi
92
-	# Avoid logging the changed database
93
-	sed -i 's|$(TWETC)/tw.pol.*||g' /etc/tripwire/twpol.txt
94
-	# recreate the configuration
95
-	echo '
69
+    sed -i 's/SYSLOGREPORTING.*/SYSLOGREPORTING =false/g' /etc/tripwire/twcfg.txt
70
+    # only send emails if something has changed
71
+    sed -i 's|MAILNOVIOLATIONS.*|MAILNOVIOLATIONS = false|g' /etc/tripwire/twcfg.txt
72
+    sed -i '/# These files change the behavior of the root account/,/}/ s/.*//g' /etc/tripwire/twpol.txt
73
+    sed -i 's|/etc/rc.boot.*||g' /etc/tripwire/twpol.txt
74
+    # Don't show any changes to /proc
75
+    sed -i 's|/proc.*||g' /etc/tripwire/twpol.txt
76
+    # Don't report log changes
77
+    sed -i 's|/var/log.*||g' /etc/tripwire/twpol.txt
78
+    # Ignore /etc/tripwire
79
+    if ! grep -q '!/etc/tripwire' /etc/tripwire/twpol.txt; then
80
+        sed -i '\|/etc\t\t->.*|a\    !/etc/tripwire ;' /etc/tripwire/twpol.txt
81
+    fi
82
+    # ignore tt-rss cache
83
+    if ! grep -q '!/etc/share/tt-rss/cache' /etc/tripwire/twpol.txt; then
84
+        sed -i '\|/etc\t\t->.*|a\    !/etc/share/tt-rss/cache ;' /etc/tripwire/twpol.txt
85
+    fi
86
+    if ! grep -q '!/etc/share/tt-rss/lock' /etc/tripwire/twpol.txt; then
87
+        sed -i '\|/etc\t\t->.*|a\    !/etc/share/tt-rss/lock ;' /etc/tripwire/twpol.txt
88
+    fi
89
+    # Avoid logging the changed database
90
+    sed -i 's|$(TWETC)/tw.pol.*||g' /etc/tripwire/twpol.txt
91
+    # recreate the configuration
92
+    echo '
96
 
93
 
97
-	   ' | twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
98
-	# reset
99
-	echo '
94
+       ' | twadmin --create-cfgfile -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
95
+    # reset
96
+    echo '
100
 
97
 
101
 
98
 
102
 
99
 
103
-	   ' | reset-tripwire
100
+       ' | reset-tripwire
104
 
101
 
105
-	echo 'install_tripwire' >> $COMPLETION_FILE
102
+    echo 'install_tripwire' >> $COMPLETION_FILE
106
 }
103
 }
107
 
104
 
108
 # NOTE: deliberately no exit 0
105
 # NOTE: deliberately no exit 0

+ 6
- 24
src/freedombone-config 查看文件

48
 # file containing new password
48
 # file containing new password
49
 IMAGE_PASSWORD_FILE=/root/login.txt
49
 IMAGE_PASSWORD_FILE=/root/login.txt
50
 
50
 
51
-# Different system variants which may be specified within
52
-# the SYSTEM_TYPE option
53
-VARIANT_FULL="full"
54
-VARIANT_WRITER="writer"
55
-VARIANT_CLOUD="cloud"
56
-VARIANT_CHAT="chat"
57
-VARIANT_MAILBOX="mailbox"
58
-VARIANT_NONMAILBOX="nonmailbox"
59
-VARIANT_SOCIAL="social"
60
-VARIANT_MEDIA="media"
61
-VARIANT_DEVELOPER="developer"
62
-VARIANT_MESH="mesh"
63
-VARIANT_MESH_USER="mesh-user"
64
-
65
 MY_USERNAME=
51
 MY_USERNAME=
66
 DEFAULT_DOMAIN_NAME=
52
 DEFAULT_DOMAIN_NAME=
67
 DEFAULT_DOMAIN_CODE=
53
 DEFAULT_DOMAIN_CODE=
291
 }
277
 }
292
 
278
 
293
 function choose_dynamic_dns {
279
 function choose_dynamic_dns {
294
-    if [[ $SYSTEM_TYPE != "$VARIANT_MESH" && $ONION_ONLY == "no" ]]; then
280
+    if [[ $SYSTEM_TYPE != "mesh"* && $ONION_ONLY == "no" ]]; then
295
 
281
 
296
         data=$(tempfile 2>/dev/null)
282
         data=$(tempfile 2>/dev/null)
297
         trap "rm -f $data" 0 1 2 5 15
283
         trap "rm -f $data" 0 1 2 5 15
731
             MY_USERNAME=$(ls /home)
717
             MY_USERNAME=$(ls /home)
732
         else
718
         else
733
             # select one from a number of users
719
             # select one from a number of users
734
-            if [[ $SYSTEM_TYPE == "$VARIANT_MESH" && $DEFAULT_DOMAIN_NAME && -d /home/$DEFAULT_DOMAIN_NAME ]]; then
735
-                MY_USERNAME=$DEFAULT_DOMAIN_NAME
736
-            else
737
-                select_user
738
-                if [ ! $SELECTED_USERNAME ]; then
739
-                    echo $'No username selected'
740
-                    exit 72589
741
-                fi
742
-                MY_USERNAME="$SELECTED_USERNAME"
720
+            select_user
721
+            if [ ! $SELECTED_USERNAME ]; then
722
+                echo $'No username selected'
723
+                exit 72589
743
             fi
724
             fi
725
+            MY_USERNAME="$SELECTED_USERNAME"
744
         fi
726
         fi
745
     fi
727
     fi
746
 
728
 

+ 173
- 173
src/freedombone-utils-dns 查看文件

45
 
45
 
46
 # other possible services to obtain the external IP address
46
 # other possible services to obtain the external IP address
47
 EXTERNAL_IP_SERVICES=( \
47
 EXTERNAL_IP_SERVICES=( \
48
-	    'https://check.torproject.org/' \
49
-		'https://www.whatsmydns.net/whats-my-ip-address.html' \
50
-		'https://www.privateinternetaccess.com/pages/whats-my-ip/' \
51
-		'http://checkip.two-dns.de' \
52
-		'http://ip.dnsexit.com' \
53
-		'http://ifconfig.me/ip' \
54
-		'http://ipecho.net/plain' \
55
-		'http://checkip.dyndns.org/plain' \
56
-		'http://ipogre.com/linux.php' \
57
-		'http://whatismyipaddress.com/' \
58
-		'http://ip.my-proxy.com/' \
59
-		'http://websiteipaddress.com/WhatIsMyIp' \
60
-		'http://getmyipaddress.org/' \
61
-		'http://www.my-ip-address.net/' \
62
-		'http://myexternalip.com/raw' \
63
-		'http://www.canyouseeme.org/' \
64
-		'http://www.trackip.net/' \
65
-		'http://icanhazip.com/' \
66
-		'http://www.iplocation.net/' \
67
-		'http://www.howtofindmyipaddress.com/' \
68
-		'http://www.ipchicken.com/' \
69
-		'http://whatsmyip.net/' \
70
-		'http://www.ip-adress.com/' \
71
-		'http://checkmyip.com/' \
72
-		'http://www.tracemyip.org/' \
73
-		'http://checkmyip.net/' \
74
-		'http://www.lawrencegoetz.com/programs/ipinfo/' \
75
-		'http://www.findmyip.co/' \
76
-		'http://ip-lookup.net/' \
77
-		'http://www.dslreports.com/whois' \
78
-		'http://www.mon-ip.com/en/my-ip/' \
79
-		'http://www.myip.ru' \
80
-		'http://ipgoat.com/' \
81
-		'http://www.myipnumber.com/my-ip-address.asp' \
82
-		'http://www.whatsmyipaddress.net/' \
83
-		'http://formyip.com/' \
84
-		'http://www.displaymyip.com/' \
85
-		'http://www.bobborst.com/tools/whatsmyip/' \
86
-		'http://www.geoiptool.com/' \
87
-		'http://checkip.dyndns.com/' \
88
-		'http://myexternalip.com/' \
89
-		'http://www.ip-adress.eu/' \
90
-		'http://www.infosniper.net/' \
91
-		'http://wtfismyip.com/' \
92
-		'http://ipinfo.io/' \
93
-		'http://httpbin.org/ip')
48
+        'https://check.torproject.org/' \
49
+        'https://www.whatsmydns.net/whats-my-ip-address.html' \
50
+        'https://www.privateinternetaccess.com/pages/whats-my-ip/' \
51
+        'http://checkip.two-dns.de' \
52
+        'http://ip.dnsexit.com' \
53
+        'http://ifconfig.me/ip' \
54
+        'http://ipecho.net/plain' \
55
+        'http://checkip.dyndns.org/plain' \
56
+        'http://ipogre.com/linux.php' \
57
+        'http://whatismyipaddress.com/' \
58
+        'http://ip.my-proxy.com/' \
59
+        'http://websiteipaddress.com/WhatIsMyIp' \
60
+        'http://getmyipaddress.org/' \
61
+        'http://www.my-ip-address.net/' \
62
+        'http://myexternalip.com/raw' \
63
+        'http://www.canyouseeme.org/' \
64
+        'http://www.trackip.net/' \
65
+        'http://icanhazip.com/' \
66
+        'http://www.iplocation.net/' \
67
+        'http://www.howtofindmyipaddress.com/' \
68
+        'http://www.ipchicken.com/' \
69
+        'http://whatsmyip.net/' \
70
+        'http://www.ip-adress.com/' \
71
+        'http://checkmyip.com/' \
72
+        'http://www.tracemyip.org/' \
73
+        'http://checkmyip.net/' \
74
+        'http://www.lawrencegoetz.com/programs/ipinfo/' \
75
+        'http://www.findmyip.co/' \
76
+        'http://ip-lookup.net/' \
77
+        'http://www.dslreports.com/whois' \
78
+        'http://www.mon-ip.com/en/my-ip/' \
79
+        'http://www.myip.ru' \
80
+        'http://ipgoat.com/' \
81
+        'http://www.myipnumber.com/my-ip-address.asp' \
82
+        'http://www.whatsmyipaddress.net/' \
83
+        'http://formyip.com/' \
84
+        'http://www.displaymyip.com/' \
85
+        'http://www.bobborst.com/tools/whatsmyip/' \
86
+        'http://www.geoiptool.com/' \
87
+        'http://checkip.dyndns.com/' \
88
+        'http://myexternalip.com/' \
89
+        'http://www.ip-adress.eu/' \
90
+        'http://www.infosniper.net/' \
91
+        'http://wtfismyip.com/' \
92
+        'http://ipinfo.io/' \
93
+        'http://httpbin.org/ip')
94
 
94
 
95
 function create_freedns_updater {
95
 function create_freedns_updater {
96
-	if [[ $ONION_ONLY != "no" ]]; then
97
-		return
98
-	fi
99
-
100
-	# currently inadyn doesn't work as expected with freeDNS, so this is a workaround
101
-	if grep -Fxq "create_freedns_updater" $COMPLETION_FILE; then
102
-		return
103
-	fi
104
-	if [[ $DDNS_PROVIDER != "default@freedns.afraid.org" ]]; then
105
-		return
106
-	fi
107
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
108
-		return
109
-	fi
110
-
111
-	FREEDNS_WGET='wget -q --read-timeout=0.0 --waitretry=5 --tries=4 https://freedns.afraid.org/dynamic/update.php?'
112
-
113
-	echo '#!/bin/bash' > /usr/bin/dynamicdns
114
-	echo 'cd /tmp' >> /usr/bin/dynamicdns
115
-	if [ $DEFAULT_DOMAIN_CODE ]; then
116
-		echo "# $DEFAULT_DOMAIN_NAME" >> /usr/bin/dynamicdns
117
-		echo "$FREEDNS_WGET$DEFAULT_DOMAIN_CODE=" >> /usr/bin/dynamicdns
118
-	fi
119
-	if [ $WIKI_CODE ]; then
120
-		if [[ $WIKI_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
121
-			echo "# $WIKI_DOMAIN_NAME" >> /usr/bin/dynamicdns
122
-			echo "$FREEDNS_WGET$WIKI_CODE=" >> /usr/bin/dynamicdns
123
-		fi
124
-	fi
125
-	if [ $FULLBLOG_CODE ]; then
126
-		if [[ $FULLBLOG_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
127
-			echo "# $FULLBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
128
-			echo "$FREEDNS_WGET$FULLBLOG_CODE=" >> /usr/bin/dynamicdns
129
-		fi
130
-	fi
131
-	if [ $HUBZILLA_CODE ]; then
132
-		if [[ $HUBZILLA_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
133
-			echo "# $HUBZILLA_DOMAIN_NAME" >> /usr/bin/dynamicdns
134
-			echo "$FREEDNS_WGET$HUBZILLA_CODE=" >> /usr/bin/dynamicdns
135
-		fi
136
-	fi
137
-	if [ $MICROBLOG_CODE ]; then
138
-		if [[ $MICROBLOG_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
139
-			echo "# $MICROBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
140
-			echo "$FREEDNS_WGET$MICROBLOG_CODE=" >> /usr/bin/dynamicdns
141
-		fi
142
-	fi
143
-	if [ $GIT_CODE ]; then
144
-		if [[ $GIT_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
145
-			echo "# $GIT_DOMAIN_NAME" >> /usr/bin/dynamicdns
146
-			echo "$FREEDNS_WGET$GIT_CODE=" >> /usr/bin/dynamicdns
147
-		fi
148
-	fi
149
-	if [ $MEDIAGOBLIN_CODE ]; then
150
-		if [[ $MEDIAGOBLIN_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
151
-			echo "# $MEDIAGOBLIN_DOMAIN_NAME" >> /usr/bin/dynamicdns
152
-			echo "$FREEDNS_WGET$MEDIAGOBLIN_CODE=" >> /usr/bin/dynamicdns
153
-		fi
154
-	fi
155
-	echo 'exit 0' >> /usr/bin/dynamicdns
156
-	chmod 600 /usr/bin/dynamicdns
157
-	chmod +x /usr/bin/dynamicdns
158
-
159
-	if ! grep -q "/usr/bin/dynamicdns" /etc/crontab; then
160
-		function_check cron_add_mins
161
-		cron_add_mins 3 '/usr/bin/dynamicdns'
162
-		systemctl restart cron
163
-	fi
164
-
165
-	echo 'create_freedns_updater' >> $COMPLETION_FILE
96
+    if [[ $ONION_ONLY != "no" ]]; then
97
+        return
98
+    fi
99
+
100
+    # currently inadyn doesn't work as expected with freeDNS, so this is a workaround
101
+    if grep -Fxq "create_freedns_updater" $COMPLETION_FILE; then
102
+        return
103
+    fi
104
+    if [[ $DDNS_PROVIDER != "default@freedns.afraid.org" ]]; then
105
+        return
106
+    fi
107
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
108
+        return
109
+    fi
110
+
111
+    FREEDNS_WGET='wget -q --read-timeout=0.0 --waitretry=5 --tries=4 https://freedns.afraid.org/dynamic/update.php?'
112
+
113
+    echo '#!/bin/bash' > /usr/bin/dynamicdns
114
+    echo 'cd /tmp' >> /usr/bin/dynamicdns
115
+    if [ $DEFAULT_DOMAIN_CODE ]; then
116
+        echo "# $DEFAULT_DOMAIN_NAME" >> /usr/bin/dynamicdns
117
+        echo "$FREEDNS_WGET$DEFAULT_DOMAIN_CODE=" >> /usr/bin/dynamicdns
118
+    fi
119
+    if [ $WIKI_CODE ]; then
120
+        if [[ $WIKI_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
121
+            echo "# $WIKI_DOMAIN_NAME" >> /usr/bin/dynamicdns
122
+            echo "$FREEDNS_WGET$WIKI_CODE=" >> /usr/bin/dynamicdns
123
+        fi
124
+    fi
125
+    if [ $FULLBLOG_CODE ]; then
126
+        if [[ $FULLBLOG_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
127
+            echo "# $FULLBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
128
+            echo "$FREEDNS_WGET$FULLBLOG_CODE=" >> /usr/bin/dynamicdns
129
+        fi
130
+    fi
131
+    if [ $HUBZILLA_CODE ]; then
132
+        if [[ $HUBZILLA_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
133
+            echo "# $HUBZILLA_DOMAIN_NAME" >> /usr/bin/dynamicdns
134
+            echo "$FREEDNS_WGET$HUBZILLA_CODE=" >> /usr/bin/dynamicdns
135
+        fi
136
+    fi
137
+    if [ $MICROBLOG_CODE ]; then
138
+        if [[ $MICROBLOG_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
139
+            echo "# $MICROBLOG_DOMAIN_NAME" >> /usr/bin/dynamicdns
140
+            echo "$FREEDNS_WGET$MICROBLOG_CODE=" >> /usr/bin/dynamicdns
141
+        fi
142
+    fi
143
+    if [ $GIT_CODE ]; then
144
+        if [[ $GIT_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
145
+            echo "# $GIT_DOMAIN_NAME" >> /usr/bin/dynamicdns
146
+            echo "$FREEDNS_WGET$GIT_CODE=" >> /usr/bin/dynamicdns
147
+        fi
148
+    fi
149
+    if [ $MEDIAGOBLIN_CODE ]; then
150
+        if [[ $MEDIAGOBLIN_CODE != "$DEFAULT_DOMAIN_CODE" ]]; then
151
+            echo "# $MEDIAGOBLIN_DOMAIN_NAME" >> /usr/bin/dynamicdns
152
+            echo "$FREEDNS_WGET$MEDIAGOBLIN_CODE=" >> /usr/bin/dynamicdns
153
+        fi
154
+    fi
155
+    echo 'exit 0' >> /usr/bin/dynamicdns
156
+    chmod 600 /usr/bin/dynamicdns
157
+    chmod +x /usr/bin/dynamicdns
158
+
159
+    if ! grep -q "/usr/bin/dynamicdns" /etc/crontab; then
160
+        function_check cron_add_mins
161
+        cron_add_mins 3 '/usr/bin/dynamicdns'
162
+        systemctl restart cron
163
+    fi
164
+
165
+    echo 'create_freedns_updater' >> $COMPLETION_FILE
166
 }
166
 }
167
 
167
 
168
 function add_ddns_domain {
168
 function add_ddns_domain {
169
-	if [ ! $1 ]; then
170
-		echo $'ddns domain not specified'
171
-		exit 5638
172
-	fi
173
-	CURRENT_DDNS_DOMAIN="$1"
174
-	if [[ $ONION_ONLY != "no" ]]; then
175
-		return
176
-	fi
177
-	if [ ! -f /etc/inadyn.conf ]; then
178
-		echo $'Unable to find inadyn configuration file /etc/inadyn.conf'
179
-		exit 5745
180
-	fi
181
-	if ! grep -q "$DDNS_PROVIDER" /etc/inadyn.conf; then
182
-		echo '' >> /etc/inadyn.conf
183
-		echo "system $DDNS_PROVIDER" >> /etc/inadyn.conf
184
-		echo '  ssl' >> /etc/inadyn.conf
185
-		echo "  checkip-url $GET_IP_ADDRESS_URL /" >> /etc/inadyn.conf
186
-		if [ $DDNS_USERNAME ]; then
187
-			echo "  username $DDNS_USERNAME" >> /etc/inadyn.conf
188
-		fi
189
-		if [ $DDNS_PASSWORD ]; then
190
-			echo "  password $DDNS_PASSWORD" >> /etc/inadyn.conf
191
-		fi
192
-	fi
193
-
194
-	if ! grep -q "$CURRENT_DDNS_DOMAIN" /etc/inadyn.conf; then
195
-		echo "  alias $CURRENT_DDNS_DOMAIN" >> /etc/inadyn.conf
196
-	fi
197
-	chmod 600 /etc/inadyn.conf
198
-	systemctl restart inadyn
199
-	systemctl daemon-reload
169
+    if [ ! $1 ]; then
170
+        echo $'ddns domain not specified'
171
+        exit 5638
172
+    fi
173
+    CURRENT_DDNS_DOMAIN="$1"
174
+    if [[ $ONION_ONLY != "no" ]]; then
175
+        return
176
+    fi
177
+    if [ ! -f /etc/inadyn.conf ]; then
178
+        echo $'Unable to find inadyn configuration file /etc/inadyn.conf'
179
+        exit 5745
180
+    fi
181
+    if ! grep -q "$DDNS_PROVIDER" /etc/inadyn.conf; then
182
+        echo '' >> /etc/inadyn.conf
183
+        echo "system $DDNS_PROVIDER" >> /etc/inadyn.conf
184
+        echo '  ssl' >> /etc/inadyn.conf
185
+        echo "  checkip-url $GET_IP_ADDRESS_URL /" >> /etc/inadyn.conf
186
+        if [ $DDNS_USERNAME ]; then
187
+            echo "  username $DDNS_USERNAME" >> /etc/inadyn.conf
188
+        fi
189
+        if [ $DDNS_PASSWORD ]; then
190
+            echo "  password $DDNS_PASSWORD" >> /etc/inadyn.conf
191
+        fi
192
+    fi
193
+
194
+    if ! grep -q "$CURRENT_DDNS_DOMAIN" /etc/inadyn.conf; then
195
+        echo "  alias $CURRENT_DDNS_DOMAIN" >> /etc/inadyn.conf
196
+    fi
197
+    chmod 600 /etc/inadyn.conf
198
+    systemctl restart inadyn
199
+    systemctl daemon-reload
200
 }
200
 }
201
 
201
 
202
 function configure_dns {
202
 function configure_dns {
203
-	if grep -Fxq "configure_dns" $COMPLETION_FILE; then
204
-		return
205
-	fi
206
-	echo 'domain localdomain' > /etc/resolv.conf
207
-	echo 'search localdomain' >> /etc/resolv.conf
208
-	echo "nameserver $NAMESERVER1" >> /etc/resolv.conf
209
-	echo "nameserver $NAMESERVER2" >> /etc/resolv.conf
210
-
211
-	# prevent resolv.conf from changing
212
-	chattr +i /etc/resolv.conf
213
-
214
-	echo 'configure_dns' >> $COMPLETION_FILE
203
+    if grep -Fxq "configure_dns" $COMPLETION_FILE; then
204
+        return
205
+    fi
206
+    echo 'domain localdomain' > /etc/resolv.conf
207
+    echo 'search localdomain' >> /etc/resolv.conf
208
+    echo "nameserver $NAMESERVER1" >> /etc/resolv.conf
209
+    echo "nameserver $NAMESERVER2" >> /etc/resolv.conf
210
+
211
+    # prevent resolv.conf from changing
212
+    chattr +i /etc/resolv.conf
213
+
214
+    echo 'configure_dns' >> $COMPLETION_FILE
215
 }
215
 }
216
 
216
 
217
 function set_hostname {
217
 function set_hostname {
218
-	DEFAULT_DOMAIN_NAME="$1"
218
+    DEFAULT_DOMAIN_NAME="$1"
219
 
219
 
220
-	echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
221
-	hostname $DEFAULT_DOMAIN_NAME
220
+    echo "$DEFAULT_DOMAIN_NAME" > /etc/hostname
221
+    hostname $DEFAULT_DOMAIN_NAME
222
 
222
 
223
-	if grep -q "127.0.1.1" /etc/hosts; then
224
-		sed -i "s/127.0.1.1.*/127.0.1.1       $DEFAULT_DOMAIN_NAME/g" /etc/hosts
225
-	else
226
-		echo "127.0.1.1  $DEFAULT_DOMAIN_NAME" >> /etc/hosts
227
-	fi
223
+    if grep -q "127.0.1.1" /etc/hosts; then
224
+        sed -i "s/127.0.1.1.*/127.0.1.1       $DEFAULT_DOMAIN_NAME/g" /etc/hosts
225
+    else
226
+        echo "127.0.1.1  $DEFAULT_DOMAIN_NAME" >> /etc/hosts
227
+    fi
228
 }
228
 }
229
 
229
 
230
 function set_your_domain_name {
230
 function set_your_domain_name {
231
-	if grep -Fxq "set_your_domain_name" $COMPLETION_FILE; then
232
-		return
233
-	fi
231
+    if grep -Fxq "set_your_domain_name" $COMPLETION_FILE; then
232
+        return
233
+    fi
234
 
234
 
235
-	function_check set_hostname
236
-	set_hostname $DEFAULT_DOMAIN_NAME
235
+    function_check set_hostname
236
+    set_hostname $DEFAULT_DOMAIN_NAME
237
 
237
 
238
-	echo 'set_your_domain_name' >> $COMPLETION_FILE
238
+    echo 'set_your_domain_name' >> $COMPLETION_FILE
239
 }
239
 }
240
 
240
 
241
 # NOTE: deliberately no exit 0
241
 # NOTE: deliberately no exit 0

+ 2
- 2
src/freedombone-utils-firewall 查看文件

106
         return
106
         return
107
     fi
107
     fi
108
     # Only allow ping for mesh installs
108
     # Only allow ping for mesh installs
109
-    if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
109
+    if [[ $SYSTEM_TYPE != "mesh"* ]]; then
110
         return
110
         return
111
     fi
111
     fi
112
     iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
112
     iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
225
     if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
225
     if grep -Fxq "configure_internet_protocol" $COMPLETION_FILE; then
226
         return
226
         return
227
     fi
227
     fi
228
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
228
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
229
         return
229
         return
230
     fi
230
     fi
231
     sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf
231
     sed -i "s/#net.ipv4.tcp_syncookies=1/net.ipv4.tcp_syncookies=1/g" /etc/sysctl.conf

+ 0
- 4
src/freedombone-utils-go 查看文件

193
 }
193
 }
194
 
194
 
195
 function upgrade_golang {
195
 function upgrade_golang {
196
-    if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_MAILBOX" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
197
-        return
198
-    fi
199
-
200
     if grep -Fxq "upgrade_golang:$GO_VERSION" $COMPLETION_FILE; then
196
     if grep -Fxq "upgrade_golang:$GO_VERSION" $COMPLETION_FILE; then
201
         return
197
         return
202
     fi
198
     fi

+ 0
- 9
src/freedombone-utils-help 查看文件

66
     echo $'     --ns2              Second DNS nameserver'
66
     echo $'     --ns2              Second DNS nameserver'
67
     echo $'     --repo             Debian repository'
67
     echo $'     --repo             Debian repository'
68
     echo ''
68
     echo ''
69
-    echo $'system types'
70
-    echo '------------'
71
-    echo $'This can either be blank if you wish to install the full system,'
72
-    echo $"or for more specialised variants you can specify '$VARIANT_MAILBOX', '$VARIANT_CLOUD',"
73
-    echo $"'$VARIANT_CHAT', '$VARIANT_SOCIAL', '$VARIANT_MEDIA', '$VARIANT_WRITER', '$VARIANT_DEVELOPER'"
74
-    echo $"or '$VARIANT_MESH'."
75
-    echo ''
76
-    echo $"If you wish to install everything except email then use the '$VARIANT_NONMAILBOX' variaint."
77
-    echo ''
78
     exit 0
69
     exit 0
79
 }
70
 }
80
 
71
 

+ 69
- 69
src/freedombone-utils-interactive 查看文件

29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
 
30
 
31
 function interactive_configuration_remote_backups {
31
 function interactive_configuration_remote_backups {
32
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
33
-		return
34
-	fi
35
-	if [ ! -f /usr/local/bin/${PROJECT_NAME}-remote ]; then
36
-		if [ ! -f /usr/bin/${PROJECT_NAME}-remote ]; then
37
-			echo $"The command ${PROJECT_NAME}-remote was not found"
38
-			exit 87354
39
-		fi
40
-	fi
41
-	${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes
42
-	if [ ! "$?" = "0" ]; then
43
-		echo $'Command failed:'
44
-		echo ''
45
-		echo $"  ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes"
46
-		echo ''
47
-		exit 65892
48
-	fi
32
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
33
+        return
34
+    fi
35
+    if [ ! -f /usr/local/bin/${PROJECT_NAME}-remote ]; then
36
+        if [ ! -f /usr/bin/${PROJECT_NAME}-remote ]; then
37
+            echo $"The command ${PROJECT_NAME}-remote was not found"
38
+            exit 87354
39
+        fi
40
+    fi
41
+    ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes
42
+    if [ ! "$?" = "0" ]; then
43
+        echo $'Command failed:'
44
+        echo ''
45
+        echo $"  ${PROJECT_NAME}-remote -u $MY_USERNAME -l $FRIENDS_SERVERS_LIST -m $MINIMUM_PASSWORD_LENGTH -r yes"
46
+        echo ''
47
+        exit 65892
48
+    fi
49
 }
49
 }
50
 
50
 
51
 function interactive_configuration {
51
 function interactive_configuration {
52
-	if [ ! -f /usr/local/bin/${PROJECT_NAME}-config ]; then
53
-		if [ ! -f /usr/bin/${PROJECT_NAME}-config ]; then
54
-			echo $"The command ${PROJECT_NAME}-config was not found"
55
-			exit 63935
56
-		fi
57
-	fi
58
-	if [ -f /tmp/meshuserdevice ]; then
59
-		rm -f /tmp/meshuserdevice
60
-	fi
52
+    if [ ! -f /usr/local/bin/${PROJECT_NAME}-config ]; then
53
+        if [ ! -f /usr/bin/${PROJECT_NAME}-config ]; then
54
+            echo $"The command ${PROJECT_NAME}-config was not found"
55
+            exit 63935
56
+        fi
57
+    fi
58
+    if [ -f /tmp/meshuserdevice ]; then
59
+        rm -f /tmp/meshuserdevice
60
+    fi
61
 
61
 
62
-	if [[ $ONION_ONLY == "no" ]]; then
63
-		if [[ $MINIMAL_INSTALL == "no" ]]; then
64
-			${PROJECT_NAME}-config \
65
-						   -f $CONFIGURATION_FILE \
66
-						   -w $PROJECT_WEBSITE \
67
-						   -m $MINIMUM_PASSWORD_LENGTH
68
-		else
69
-			${PROJECT_NAME}-config \
70
-						   -f $CONFIGURATION_FILE \
71
-						   -w $PROJECT_WEBSITE \
72
-						   -m $MINIMUM_PASSWORD_LENGTH \
73
-						   --minimal "yes"
74
-		fi
75
-	else
76
-		${PROJECT_NAME}-config \
77
-					   -f $CONFIGURATION_FILE \
78
-					   -w $PROJECT_WEBSITE \
79
-					   -m $MINIMUM_PASSWORD_LENGTH \
80
-					   --onion "yes"
81
-	fi
82
-	if [ -f /tmp/meshuserdevice ]; then
83
-		# mesh network user device installation
84
-		rm -f /tmp/meshuserdevice
85
-		exit 0
86
-	fi
87
-	if [ ! "$?" = "0" ]; then
88
-		echo $'Command failed:'
89
-		echo ''
90
-		echo $"  ${PROJECT_NAME}-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $PROJECT_WEBSITE -b $PROJECT_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]"
91
-		echo ''
92
-		exit 73594
93
-	fi
62
+    if [[ $ONION_ONLY == "no" ]]; then
63
+        if [[ $MINIMAL_INSTALL == "no" ]]; then
64
+            ${PROJECT_NAME}-config \
65
+                           -f $CONFIGURATION_FILE \
66
+                           -w $PROJECT_WEBSITE \
67
+                           -m $MINIMUM_PASSWORD_LENGTH
68
+        else
69
+            ${PROJECT_NAME}-config \
70
+                           -f $CONFIGURATION_FILE \
71
+                           -w $PROJECT_WEBSITE \
72
+                           -m $MINIMUM_PASSWORD_LENGTH \
73
+                           --minimal "yes"
74
+        fi
75
+    else
76
+        ${PROJECT_NAME}-config \
77
+                       -f $CONFIGURATION_FILE \
78
+                       -w $PROJECT_WEBSITE \
79
+                       -m $MINIMUM_PASSWORD_LENGTH \
80
+                       --onion "yes"
81
+    fi
82
+    if [ -f /tmp/meshuserdevice ]; then
83
+        # mesh network user device installation
84
+        rm -f /tmp/meshuserdevice
85
+        exit 0
86
+    fi
87
+    if [ ! "$?" = "0" ]; then
88
+        echo $'Command failed:'
89
+        echo ''
90
+        echo $"  ${PROJECT_NAME}-config -u $MY_USERNAME -f $CONFIGURATION_FILE -w $PROJECT_WEBSITE -b $PROJECT_BITMESSAGE -m $MINIMUM_PASSWORD_LENGTH --minimal [yes|no]"
91
+        echo ''
92
+        exit 73594
93
+    fi
94
 
94
 
95
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
96
-		FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
95
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
96
+        FRIENDS_SERVERS_LIST=/home/$MY_USERNAME/backup.list
97
 
97
 
98
-		dialog --title $"Encrypted backup to other servers" \
99
-			   --backtitle $"${PROJECT_NAME} Configuration" \
100
-			   --defaultno \
101
-			   --yesno $"\nDo you wish to configure some remote backup locations?" 7 60
102
-		sel=$?
103
-		case $sel in
104
-			0) interactive_configuration_remote_backups;;
105
-		esac
106
-	fi
98
+        dialog --title $"Encrypted backup to other servers" \
99
+               --backtitle $"${PROJECT_NAME} Configuration" \
100
+               --defaultno \
101
+               --yesno $"\nDo you wish to configure some remote backup locations?" 7 60
102
+        sel=$?
103
+        case $sel in
104
+            0) interactive_configuration_remote_backups;;
105
+        esac
106
+    fi
107
 }
107
 }
108
 
108
 
109
 # NOTE: deliberately no exit 0
109
 # NOTE: deliberately no exit 0

+ 18
- 52
src/freedombone-utils-login 查看文件

29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
 
30
 
31
 function change_login_message {
31
 function change_login_message {
32
-	if grep -Fxq "change_login_message" $COMPLETION_FILE; then
33
-		return
34
-	fi
35
-
36
-	# remove automatic motd creator if it exists
37
-	if [ -f /etc/init.d/motd ]; then
38
-		rm -f /etc/init.d/motd
39
-	fi
40
-
41
-	echo '' > /etc/motd
42
-	echo ".---.                  .              .                   " >> /etc/motd
43
-	echo "|                      |              |                   " >> /etc/motd
44
-	echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. " >> /etc/motd
45
-	echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' " >> /etc/motd
46
-	echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'" >> /etc/motd
47
-
48
-	if [[ $SYSTEM_TYPE == "$VARIANT_MAILBOX" ]]; then
49
-		echo $'               M A I L B O X   E D I T I O N' >> /etc/motd
50
-	fi
51
-
52
-	if [[ $SYSTEM_TYPE == "$VARIANT_SOCIAL" ]]; then
53
-		echo $'                 S O C I A L   E D I T I O N' >> /etc/motd
54
-	fi
55
-
56
-	if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" ]]; then
57
-		echo $'                  C H A T   E D I T I O N' >> /etc/motd
58
-	fi
59
-
60
-	if [[ $SYSTEM_TYPE == "$VARIANT_CLOUD" ]]; then
61
-		echo $'                  C L O U D   E D I T I O N' >> /etc/motd
62
-	fi
63
-
64
-	if [[ $SYSTEM_TYPE == "$VARIANT_WRITER" ]]; then
65
-		echo $'                 W R I T E R   E D I T I O N ' >> /etc/motd
66
-	fi
67
-
68
-	if [[ $SYSTEM_TYPE == "$VARIANT_MEDIA" ]]; then
69
-		echo $'                  M E D I A   E D I T I O N' >> /etc/motd
70
-	fi
71
-
72
-	if [[ $SYSTEM_TYPE == "$VARIANT_DEVELOPER" ]]; then
73
-		echo $'             D E V E L O P E R   E D I T I O N' >> /etc/motd
74
-	fi
75
-
76
-	echo '' >> /etc/motd
77
-	if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
78
-		echo $'                  Freedom in the Cloud' >> /etc/motd
79
-	else
80
-		echo $'                   Freedom in the Mesh' >> /etc/motd
81
-	fi
82
-	echo '' >> /etc/motd
83
-	echo 'change_login_message' >> $COMPLETION_FILE
32
+    if grep -Fxq "change_login_message" $COMPLETION_FILE; then
33
+        return
34
+    fi
35
+
36
+    # remove automatic motd creator if it exists
37
+    if [ -f /etc/init.d/motd ]; then
38
+        rm -f /etc/init.d/motd
39
+    fi
40
+
41
+    echo '' > /etc/motd
42
+    echo ".---.                  .              .                   " >> /etc/motd
43
+    echo "|                      |              |                   " >> /etc/motd
44
+    echo "|--- .--. .-.  .-.  .-.|  .-. .--.--. |.-.  .-. .--.  .-. " >> /etc/motd
45
+    echo "|    |   (.-' (.-' (   | (   )|  |  | |   )(   )|  | (.-' " >> /etc/motd
46
+    echo "'    '     --'  --'  -' -  -' '  '   -' -'   -' '   -  --'" >> /etc/motd
47
+    echo $'                  Freedom in the Cloud' >> /etc/motd
48
+    echo '' >> /etc/motd
49
+    echo 'change_login_message' >> $COMPLETION_FILE
84
 }
50
 }
85
 
51
 
86
 # NOTE: deliberately no exit 0
52
 # NOTE: deliberately no exit 0

+ 6
- 6
src/freedombone-utils-onion 查看文件

134
 }
134
 }
135
 
135
 
136
 function create_avahi_onion_domains {
136
 function create_avahi_onion_domains {
137
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
137
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
138
         return
138
         return
139
     fi
139
     fi
140
     if [ ! -d /etc/avahi/services ]; then
140
     if [ ! -d /etc/avahi/services ]; then
159
 }
159
 }
160
 
160
 
161
 function allow_ssh_to_onion_address {
161
 function allow_ssh_to_onion_address {
162
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
162
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
163
         return
163
         return
164
     fi
164
     fi
165
     if [ ! -d /home/$MY_USERNAME/.ssh ]; then
165
     if [ ! -d /home/$MY_USERNAME/.ssh ]; then
176
 }
176
 }
177
 
177
 
178
 function enable_ssh_via_onion {
178
 function enable_ssh_via_onion {
179
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
179
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
180
         return
180
         return
181
     fi
181
     fi
182
     if grep -Fxq "enable_ssh_via_onion" $COMPLETION_FILE; then
182
     if grep -Fxq "enable_ssh_via_onion" $COMPLETION_FILE; then
206
     if grep -Fxq "configure_ssh_onion" $COMPLETION_FILE; then
206
     if grep -Fxq "configure_ssh_onion" $COMPLETION_FILE; then
207
         return
207
         return
208
     fi
208
     fi
209
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
209
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
210
         return
210
         return
211
     fi
211
     fi
212
 
212
 
222
 }
222
 }
223
 
223
 
224
 function install_tor {
224
 function install_tor {
225
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
225
+    if [[ $SYSTEM_TYPE == "mesh*" ]]; then
226
         return
226
         return
227
     fi
227
     fi
228
     if grep -Fxq "install_tor" $COMPLETION_FILE; then
228
     if grep -Fxq "install_tor" $COMPLETION_FILE; then
237
 }
237
 }
238
 
238
 
239
 function resolve_dns_via_tor {
239
 function resolve_dns_via_tor {
240
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
240
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
241
         return
241
         return
242
     fi
242
     fi
243
     if grep -Fxq "resolve_dns_via_tor" $COMPLETION_FILE; then
243
     if grep -Fxq "resolve_dns_via_tor" $COMPLETION_FILE; then

+ 14
- 0
src/freedombone-utils-selector 查看文件

110
     done
110
     done
111
 }
111
 }
112
 
112
 
113
+function is_valid_variant {
114
+    sys_type="$1"
115
+    available_variants_list=()
116
+    available_system_variants
117
+
118
+    for variant_str in "${available_variants_list[@]}"
119
+    do
120
+        if [[ "$sys_type" == "$variant_str" ]]; then
121
+            return "1"
122
+        fi
123
+    done
124
+    return "0"
125
+}
126
+
113
 # mark a given app as having been removed so that it doesn't get reinstalled on updates
127
 # mark a given app as having been removed so that it doesn't get reinstalled on updates
114
 function remove_app {
128
 function remove_app {
115
     app_name=$1
129
     app_name=$1

+ 27
- 41
src/freedombone-utils-setup 查看文件

32
     PROJECT_NAME='freedombone'
32
     PROJECT_NAME='freedombone'
33
 fi
33
 fi
34
 
34
 
35
-# Different system variants which may be specified within
36
-# the SYSTEM_TYPE option
37
-VARIANT_FULL="full"
38
-VARIANT_WRITER="writer"
39
-VARIANT_CLOUD="cloud"
40
-VARIANT_CHAT="chat"
41
-VARIANT_MAILBOX="mailbox"
42
-VARIANT_NONMAILBOX="nonmailbox"
43
-VARIANT_SOCIAL="social"
44
-VARIANT_MEDIA="media"
45
-VARIANT_DEVELOPER="developer"
46
-VARIANT_MESH="mesh"
47
-
48
 DEFAULT_DOMAIN_NAME=
35
 DEFAULT_DOMAIN_NAME=
49
 DEFAULT_DOMAIN_CODE=
36
 DEFAULT_DOMAIN_CODE=
50
 MY_USERNAME=
37
 MY_USERNAME=
51
-SYSTEM_TYPE=$VARIANT_FULL
38
+SYSTEM_TYPE="full"
52
 
39
 
53
 # An optional configuration file which overrides some of these variables
40
 # An optional configuration file which overrides some of these variables
54
 CONFIGURATION_FILE="${PROJECT_NAME}.cfg"
41
 CONFIGURATION_FILE="${PROJECT_NAME}.cfg"
121
             mkdir $USB_MOUNT
108
             mkdir $USB_MOUNT
122
             mount $USB_DRIVE $USB_MOUNT
109
             mount $USB_DRIVE $USB_MOUNT
123
         fi
110
         fi
124
-        if ! [[ $SYSTEM_TYPE == "$VARIANT_WRITER" || $SYSTEM_TYPE == "$VARIANT_CLOUD" || $SYSTEM_TYPE == "$VARIANT_CHAT" || $SYSTEM_TYPE == "$VARIANT_SOCIAL" || $SYSTEM_TYPE == "$VARIANT_MEDIA" || $SYSTEM_TYPE == "$VARIANT_DEVELOPER" || $SYSTEM_TYPE == "$VARIANT_MESH" || $SYSTEM_TYPE == "$VARIANT_NONMAILBOX" ]]; then
125
-            if [ -d $USB_MOUNT/Maildir ]; then
126
-                echo $'Maildir found on USB drive'
127
-                IMPORT_MAILDIR=$USB_MOUNT/Maildir
128
-            fi
129
-            if [ -d $USB_MOUNT/.gnupg ]; then
130
-                echo $'Importing GPG keyring'
131
-                cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
132
-                chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
133
-                GPG_KEYS_IMPORTED="yes"
134
-                if [ ! -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
135
-                    echo $'GPG files did not copy'
136
-                    exit 73529
137
-                fi
111
+        if [ -d $USB_MOUNT/Maildir ]; then
112
+            echo $'Maildir found on USB drive'
113
+            IMPORT_MAILDIR=$USB_MOUNT/Maildir
114
+        fi
115
+        if [ -d $USB_MOUNT/.gnupg ]; then
116
+            echo $'Importing GPG keyring'
117
+            cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
118
+            chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
119
+            GPG_KEYS_IMPORTED="yes"
120
+            if [ ! -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
121
+                echo $'GPG files did not copy'
122
+                exit 73529
138
             fi
123
             fi
124
+        fi
139
 
125
 
140
-            if [ -f $USB_MOUNT/.procmailrc ]; then
141
-                echo $'Importing procmail settings'
142
-                cp $USB_MOUNT/.procmailrc /home/$MY_USERNAME
143
-                chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
144
-            fi
126
+        if [ -f $USB_MOUNT/.procmailrc ]; then
127
+            echo $'Importing procmail settings'
128
+            cp $USB_MOUNT/.procmailrc /home/$MY_USERNAME
129
+            chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
130
+        fi
145
 
131
 
146
-            if [ -f $USB_MOUNT/private_key.gpg ]; then
147
-                echo $'GPG private key found on USB drive'
148
-                MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
149
-            fi
150
-            if [ -f $USB_MOUNT/public_key.gpg ]; then
151
-                echo $'GPG public key found on USB drive'
152
-                MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
153
-            fi
132
+        if [ -f $USB_MOUNT/private_key.gpg ]; then
133
+            echo $'GPG private key found on USB drive'
134
+            MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
154
         fi
135
         fi
136
+        if [ -f $USB_MOUNT/public_key.gpg ]; then
137
+            echo $'GPG public key found on USB drive'
138
+            MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
139
+        fi
140
+
155
         if [ -d $USB_MOUNT/prosody ]; then
141
         if [ -d $USB_MOUNT/prosody ]; then
156
             if [ ! -d $XMPP_DIRECTORY ]; then
142
             if [ ! -d $XMPP_DIRECTORY ]; then
157
                 mkdir $XMPP_DIRECTORY
143
                 mkdir $XMPP_DIRECTORY

+ 70
- 70
src/freedombone-utils-time 查看文件

43
 TLSDATE_COMMIT='505e31540eebde8074e7dc93b29be0d848def06a'
43
 TLSDATE_COMMIT='505e31540eebde8074e7dc93b29be0d848def06a'
44
 
44
 
45
 function check_date {
45
 function check_date {
46
-	curr_date=$(date)
47
-	if [[ $curr_date == *"1970"* ]]; then
48
-		apt-get -y install ntp
49
-	fi
46
+    curr_date=$(date)
47
+    if [[ $curr_date == *"1970"* ]]; then
48
+        apt-get -y install ntp
49
+    fi
50
 }
50
 }
51
 
51
 
52
 function time_synchronisation {
52
 function time_synchronisation {
53
-	# mesh peers typically don't sync over the internet
54
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
55
-		return
56
-	fi
53
+    # mesh peers typically don't sync over the internet
54
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
55
+        return
56
+    fi
57
 
57
 
58
-	if [ -f /usr/local/bin/${PROJECT_NAME}-update-date ]; then
59
-		cp /usr/local/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
60
-	else
61
-		cp /usr/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
62
-	fi
63
-	chmod +x /usr/bin/updatedate
58
+    if [ -f /usr/local/bin/${PROJECT_NAME}-update-date ]; then
59
+        cp /usr/local/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
60
+    else
61
+        cp /usr/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
62
+    fi
63
+    chmod +x /usr/bin/updatedate
64
 
64
 
65
-	if grep -Fxq "time_synchronisation" $COMPLETION_FILE; then
66
-		return
67
-	fi
65
+    if grep -Fxq "time_synchronisation" $COMPLETION_FILE; then
66
+        return
67
+    fi
68
 
68
 
69
-	apt-get -y install tlsdate
70
-	apt-get -y remove ntpdate
69
+    apt-get -y install tlsdate
70
+    apt-get -y remove ntpdate
71
 
71
 
72
-	function_check cron_add_mins
73
-	cron_add_mins 15 '/usr/bin/updatedate'
72
+    function_check cron_add_mins
73
+    cron_add_mins 15 '/usr/bin/updatedate'
74
 
74
 
75
-	systemctl restart cron
75
+    systemctl restart cron
76
 
76
 
77
-	echo 'time_synchronisation' >> $COMPLETION_FILE
77
+    echo 'time_synchronisation' >> $COMPLETION_FILE
78
 }
78
 }
79
 
79
 
80
 function time_synchronisation_tlsdate {
80
 function time_synchronisation_tlsdate {
81
-	# mesh peers typically don't sync over the internet
82
-	if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
83
-		return
84
-	fi
85
-
86
-	if [ -f /usr/local/bin/${PROJECT_NAME}-update-date ]; then
87
-		cp /usr/local/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
88
-	else
89
-		cp /usr/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
90
-	fi
91
-	chmod +x /usr/bin/updatedate
92
-
93
-	if [ ! -d $INSTALL_DIR ]; then
94
-		mkdir -p $INSTALL_DIR
95
-	fi
96
-	set_repo_commit $INSTALL_DIR/tlsdate "tlsdate commit" "$TLSDATE_COMMIT" $TLSDATE_REPO
97
-
98
-	if grep -Fxq "time_synchronisation_tlsdate" $COMPLETION_FILE; then
99
-		return
100
-	fi
101
-
102
-	apt-get -y remove tlsdate ntpdate
103
-	apt-get -y install build-essential autoconf libevent-dev
104
-	apt-get -y install pkg-config libtool libssl-dev
105
-
106
-	cd $INSTALL_DIR
107
-	function_check git_clone
108
-	git_clone $TLSDATE_REPO $INSTALL_DIR/tlsdate
109
-	cd $INSTALL_DIR/tlsdate
110
-	git checkout $TLSDATE_COMMIT -b $TLSDATE_COMMIT
111
-	./autogen.sh
112
-	./configure
113
-	if [ ! "$?" = "0" ]; then
114
-		echo $'Unable to configure tlsdate'
115
-		exit 6825277
116
-	fi
117
-	make
118
-	if [ ! "$?" = "0" ]; then
119
-		echo $'Unable to build tlsdate'
120
-		exit 3792726
121
-	fi
122
-	make install
123
-
124
-	function_check cron_add_mins
125
-	cron_add_mins 15 '/usr/bin/updatedate'
126
-
127
-	echo 'time_synchronisation_tlsdate' >> $COMPLETION_FILE
81
+    # mesh peers typically don't sync over the internet
82
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
83
+        return
84
+    fi
85
+
86
+    if [ -f /usr/local/bin/${PROJECT_NAME}-update-date ]; then
87
+        cp /usr/local/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
88
+    else
89
+        cp /usr/bin/${PROJECT_NAME}-update-date /usr/bin/updatedate
90
+    fi
91
+    chmod +x /usr/bin/updatedate
92
+
93
+    if [ ! -d $INSTALL_DIR ]; then
94
+        mkdir -p $INSTALL_DIR
95
+    fi
96
+    set_repo_commit $INSTALL_DIR/tlsdate "tlsdate commit" "$TLSDATE_COMMIT" $TLSDATE_REPO
97
+
98
+    if grep -Fxq "time_synchronisation_tlsdate" $COMPLETION_FILE; then
99
+        return
100
+    fi
101
+
102
+    apt-get -y remove tlsdate ntpdate
103
+    apt-get -y install build-essential autoconf libevent-dev
104
+    apt-get -y install pkg-config libtool libssl-dev
105
+
106
+    cd $INSTALL_DIR
107
+    function_check git_clone
108
+    git_clone $TLSDATE_REPO $INSTALL_DIR/tlsdate
109
+    cd $INSTALL_DIR/tlsdate
110
+    git checkout $TLSDATE_COMMIT -b $TLSDATE_COMMIT
111
+    ./autogen.sh
112
+    ./configure
113
+    if [ ! "$?" = "0" ]; then
114
+        echo $'Unable to configure tlsdate'
115
+        exit 6825277
116
+    fi
117
+    make
118
+    if [ ! "$?" = "0" ]; then
119
+        echo $'Unable to build tlsdate'
120
+        exit 3792726
121
+    fi
122
+    make install
123
+
124
+    function_check cron_add_mins
125
+    cron_add_mins 15 '/usr/bin/updatedate'
126
+
127
+    echo 'time_synchronisation_tlsdate' >> $COMPLETION_FILE
128
 }
128
 }
129
 
129
 
130
 # NOTE: deliberately no exit 0
130
 # NOTE: deliberately no exit 0

+ 1
- 4
src/freedombone-utils-web 查看文件

321
 }
321
 }
322
 
322
 
323
 function install_dynamicdns {
323
 function install_dynamicdns {
324
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
324
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
325
         return
325
         return
326
     fi
326
     fi
327
     if [[ $ONION_ONLY != "no" ]]; then
327
     if [[ $ONION_ONLY != "no" ]]; then
439
         mesh_web_server
439
         mesh_web_server
440
         return
440
         return
441
     fi
441
     fi
442
-    if [[ $SYSTEM_TYPE == "$VARIANT_CHAT" ]]; then
443
-        return
444
-    fi
445
 
442
 
446
     # update to the next commit
443
     # update to the next commit
447
     function_check set_repo_commit
444
     function_check set_repo_commit

+ 1
- 1
src/freedombone-utils-wifi 查看文件

40
 ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
40
 ATHEROS_WIFI_REPO="https://github.com/qca/open-ath9k-htc-firmware.git"
41
 
41
 
42
 function setup_wifi {
42
 function setup_wifi {
43
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
43
+    if [[ $SYSTEM_TYPE == "mesh"* ]]; then
44
         return
44
         return
45
     fi
45
     fi
46
     if [ ! $WIFI_SSID ]; then
46
     if [ ! $WIFI_SSID ]; then