Browse Source

Moving apps to share

Bob Mottram 8 years ago
parent
commit
94b3b80aa9

+ 20
- 84
src/freedombone-image-customise View File

@@ -626,11 +626,7 @@ function mesh_firewall {
626 626
 
627 627
 function mesh_tox_node {
628 628
 	# obtain commits from the main file
629
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
630
-		TOXCORE_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
631
-	else
632
-		TOXCORE_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
633
-	fi
629
+	TOXCORE_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXCORE_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
634 630
 	if [ ${#TOXCORE_COMMIT_MAIN} -gt 10 ]; then
635 631
 		TOXCORE_COMMIT=$TOXCORE_COMMIT_MAIN
636 632
 	fi
@@ -639,11 +635,7 @@ function mesh_tox_node {
639 635
 		exit 76325
640 636
 	fi
641 637
 
642
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
643
-		TOX_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
644
-	else
645
-		TOX_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
646
-	fi
638
+	TOX_PORT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOX_PORT=" | head -n 1 | awk -F '=' '{print $2}')
647 639
 	if [ ${#TOX_PORT_MAIN} -gt 2 ]; then
648 640
 		TOX_PORT=$TOX_PORT_MAIN
649 641
 	fi
@@ -652,11 +644,7 @@ function mesh_tox_node {
652 644
 		exit 32856
653 645
 	fi
654 646
 
655
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
656
-		TOXCORE_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
657
-	else
658
-		TOXCORE_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
659
-	fi
647
+	TOXCORE_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXCORE_REPO=" | head -n 1 | awk -F '"' '{print $2}')
660 648
 	if [ ${#TOXCORE_REPO_MAIN} -gt 10 ]; then
661 649
 		TOXCORE_REPO=$TOXCORE_REPO_MAIN
662 650
 	fi
@@ -767,11 +755,7 @@ function mesh_tox_avahi {
767 755
 		exit 87359
768 756
 	fi
769 757
 
770
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
771
-		TOXID_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
772
-	else
773
-		TOXID_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
774
-	fi
758
+	TOXID_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
775 759
 	if [ ${#TOXID_REPO_MAIN} -gt 5 ]; then
776 760
 		TOXID_REPO=$TOXID_REPO_MAIN
777 761
 	fi
@@ -814,27 +798,15 @@ function mesh_tox_avahi {
814 798
 }
815 799
 
816 800
 function mesh_tox_client {
817
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
818
-		TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
819
-	else
820
-		TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
821
-	fi
801
+	TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
822 802
 
823 803
 	# obtain commits from the main file
824
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
825
-		TOXIC_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
826
-	else
827
-		TOXIC_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
828
-	fi
804
+	TOXIC_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
829 805
 	if [ ${#TOXIC_COMMIT_MAIN} -gt 10 ]; then
830 806
 		TOXIC_COMMIT=$TOXIC_COMMIT_MAIN
831 807
 	fi
832 808
 
833
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
834
-		TOXIC_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
835
-	else
836
-		TOXIC_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
837
-	fi
809
+	TOXIC_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_REPO=" | head -n 1 | awk -F '"' '{print $2}')
838 810
 	if [ ${#TOXIC_REPO_MAIN} -gt 5 ]; then
839 811
 		TOXIC_REPO=$TOXIC_REPO_MAIN
840 812
 	fi
@@ -858,11 +830,7 @@ function mesh_tox_client {
858 830
 	chmod +x $TEMP_SCRIPT
859 831
 	cp $TEMP_SCRIPT $rootdir/root/
860 832
 
861
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
862
-		TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
863
-	else
864
-		TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
865
-	fi
833
+	TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
866 834
 
867 835
 	SECONDS=0
868 836
 	chroot "$rootdir" /root/$TEMP_SCRIPT_NAME
@@ -884,11 +852,7 @@ function mesh_tox_client {
884 852
 
885 853
 function mesh_zeronet {
886 854
 	# obtain commits from the main file
887
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
888
-		ZERONET_COMMIT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
889
-	else
890
-		ZERONET_COMMIT_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
891
-	fi
855
+	ZERONET_COMMIT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
892 856
 	if [ ${#ZERONET_COMMIT_MAIN} -gt 10 ]; then
893 857
 		ZERONET_COMMIT=$ZERONET_COMMIT_MAIN
894 858
 	fi
@@ -896,12 +860,8 @@ function mesh_zeronet {
896 860
 		echo $'No Tox commit was specified'
897 861
 		exit 37046
898 862
 	fi
899
-
900
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
901
-		ZERONET_REPO_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
902
-	else
903
-		ZERONET_REPO_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
904
-	fi
863
+	
864
+	ZERONET_REPO_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_REPO=" | head -n 1 | awk -F '"' '{print $2}')
905 865
 	if [ ${#ZERONET_REPO_MAIN} -gt 5 ]; then
906 866
 		ZERONET_REPO=$ZERONET_REPO_MAIN
907 867
 	fi
@@ -910,11 +870,7 @@ function mesh_zeronet {
910 870
 		exit 37046
911 871
 	fi
912 872
 
913
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
914
-		ZERONET_PORT_MAIN=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
915
-	else
916
-		ZERONET_PORT_MAIN=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
917
-	fi
873
+	ZERONET_PORT_MAIN=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_PORT=" | head -n 1 | awk -F '=' '{print $2}')
918 874
 	if [ ${#ZERONET_PORT_MAIN} -gt 1 ]; then
919 875
 		ZERONET_PORT=$ZERONET_PORT_MAIN
920 876
 	fi
@@ -995,13 +951,8 @@ function mesh_zeronet {
995 951
 }
996 952
 
997 953
 function mesh_zeronet_blog {
998
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
999
-		ZERONET_BLOG_REPO=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1000
-		ZERONET_BLOG_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1001
-	else
1002
-		ZERONET_BLOG_REPO=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1003
-		ZERONET_BLOG_COMMIT=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1004
-	fi
954
+	ZERONET_BLOG_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_REPO=" | head -n 1 | awk -F '"' '{print $2}')
955
+	ZERONET_BLOG_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_BLOG_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1005 956
 
1006 957
 	git clone $ZERONET_BLOG_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog
1007 958
 	if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroBlog ]; then
@@ -1014,13 +965,8 @@ function mesh_zeronet_blog {
1014 965
 }
1015 966
 
1016 967
 function mesh_zeronet_mail {
1017
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
1018
-		ZERONET_MAIL_REPO=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1019
-		ZERONET_MAIL_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1020
-	else
1021
-		ZERONET_MAIL_REPO=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1022
-		ZERONET_MAIL_COMMIT=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1023
-	fi
968
+	ZERONET_MAIL_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_REPO=" | head -n 1 | awk -F '"' '{print $2}')
969
+	ZERONET_MAIL_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_MAIL_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1024 970
 
1025 971
 	git clone $ZERONET_MAIL_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail
1026 972
 	if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroMail ]; then
@@ -1033,13 +979,8 @@ function mesh_zeronet_mail {
1033 979
 }
1034 980
 
1035 981
 function mesh_zeronet_forum {
1036
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
1037
-		ZERONET_FORUM_REPO=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1038
-		ZERONET_FORUM_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1039
-	else
1040
-		ZERONET_FORUM_REPO=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1041
-		ZERONET_FORUM_COMMIT=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1042
-	fi
982
+	ZERONET_FORUM_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_REPO=" | head -n 1 | awk -F '"' '{print $2}')
983
+	ZERONET_FORUM_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_FORUM_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1043 984
 
1044 985
 	git clone $ZERONET_FORUM_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk
1045 986
 	if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroTalk ]; then
@@ -1052,13 +993,8 @@ function mesh_zeronet_forum {
1052 993
 }
1053 994
 
1054 995
 function mesh_zeronet_id {
1055
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
1056
-		ZERONET_ID_REPO=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1057
-		ZERONET_ID_COMMIT=$(cat /usr/local/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1058
-	else
1059
-		ZERONET_ID_REPO=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
1060
-		ZERONET_ID_COMMIT=$(cat /usr/bin/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1061
-	fi
996
+	ZERONET_ID_REPO=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_REPO=" | head -n 1 | awk -F '"' '{print $2}')
997
+	ZERONET_ID_COMMIT=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-zeronet | grep "ZERONET_ID_COMMIT=" | head -n 1 | awk -F "'" '{print $2}')
1062 998
 
1063 999
 	git clone $ZERONET_ID_REPO $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID
1064 1000
 	if [ ! -d $rootdir$MESH_INSTALL_DIR/zeronet/ZeroID ]; then

+ 1
- 5
src/freedombone-image-mesh View File

@@ -372,11 +372,7 @@ function configure_zeronet_id {
372 372
 function configure_toxcore {
373 373
 	echo $'Configuring toxcore' >> $INSTALL_LOG
374 374
 
375
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
376
-		TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
377
-	else
378
-		TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
379
-	fi
375
+	TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
380 376
 
381 377
 	echo $'Enabling toxcore daemon' >> $INSTALL_LOG
382 378
 	systemctl enable tox-bootstrapd.service

+ 1
- 5
src/freedombone-mesh View File

@@ -36,11 +36,7 @@ export TEXTDOMAINDIR="/usr/share/locale"
36 36
 CONFIG_FILE=$HOME/${PROJECT_NAME}.cfg
37 37
 
38 38
 MUMBLE_PATH=/usr/bin/mumble
39
-if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
40
-    TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
41
-else
42
-    TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
43
-fi
39
+TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
44 40
 DHTNODES=/usr/share/toxic/DHTnodes
45 41
 
46 42
 PEERS_FILE=/tmp/meshpeers.txt

+ 1
- 5
src/freedombone-mesh-install View File

@@ -229,11 +229,7 @@ function mesh_avahi {
229 229
 
230 230
 function install_babel_client {
231 231
 	# TODO to be fixed
232
-	if [ -f /usr/local/bin/${PROJECT_NAME} ]; then
233
-		TOXIC_FILE=$(cat /usr/local/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
234
-	else
235
-		TOXIC_FILE=$(cat /usr/bin/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
236
-	fi
232
+	TOXIC_FILE=$(cat /usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-tox | grep "TOXIC_FILE=" | head -n 1 | awk -F '=' '{print $2}')
237 233
 
238 234
 	if [ ! -f ${rootdir}/tmp/meshtype ]; then
239 235
 		$CHROOT_PREFIX sudo apt-get -y install babeld

+ 4
- 0
src/freedombone-utils-selector View File

@@ -79,6 +79,8 @@ function detect_apps {
79 79
 			APPS_CHOSEN+=("0")
80 80
 		fi
81 81
 	done
82
+
83
+	function_check get_apps_installed
82 84
 	get_apps_installed
83 85
 }
84 86
 
@@ -112,6 +114,8 @@ function choose_apps_for_variant {
112 114
 
113 115
 		fi
114 116
 	done
117
+
118
+	function_check get_apps_installed
115 119
 	get_apps_installed
116 120
 }
117 121
 

+ 226
- 218
src/freedombone-utils-setup View File

@@ -87,250 +87,258 @@ CHECK_MESSAGE="Check your internet connection, /etc/network/interfaces and /etc/
87 87
 DH_KEYLENGTH=2048
88 88
 
89 89
 function initial_setup {
90
-	if grep -Fxq "initial_setup" $COMPLETION_FILE; then
91
-		return
92
-	fi
93
-
94
-	apt-get -y remove --purge apache*
95
-	apt-get -y dist-upgrade
96
-	apt-get -y install ca-certificates emacs24 cpulimit
97
-	apt-get -y install cryptsetup libgfshare-bin obnam sshpass wget
98
-	apt-get -y install avahi-daemon avahi-utils avahi-discover
99
-	apt-get -y install connect-proxy
100
-
101
-	if [ ! -d $INSTALL_DIR ]; then
102
-		mkdir -p $INSTALL_DIR
103
-	fi
104
-
105
-	echo 'initial_setup' >> $COMPLETION_FILE
90
+    if grep -Fxq "initial_setup" $COMPLETION_FILE; then
91
+        return
92
+    fi
93
+
94
+    apt-get -y remove --purge apache*
95
+    apt-get -y dist-upgrade
96
+    apt-get -y install ca-certificates emacs24 cpulimit
97
+    apt-get -y install cryptsetup libgfshare-bin obnam sshpass wget
98
+    apt-get -y install avahi-daemon avahi-utils avahi-discover
99
+    apt-get -y install connect-proxy
100
+
101
+    if [ ! -d $INSTALL_DIR ]; then
102
+        mkdir -p $INSTALL_DIR
103
+    fi
104
+
105
+    echo 'initial_setup' >> $COMPLETION_FILE
106 106
 }
107 107
 
108 108
 function search_for_attached_usb_drive {
109
-	# If a USB drive is attached then search for email,
110
-	# gpg, ssh keys and emacs configuration
111
-	if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
112
-		return
113
-	fi
114
-	if [ -b $USB_DRIVE ]; then
115
-		if [ ! -d $USB_MOUNT ]; then
116
-			echo $'Mounting USB drive'
117
-			mkdir $USB_MOUNT
118
-			mount $USB_DRIVE $USB_MOUNT
119
-		fi
120
-		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
121
-			if [ -d $USB_MOUNT/Maildir ]; then
122
-				echo $'Maildir found on USB drive'
123
-				IMPORT_MAILDIR=$USB_MOUNT/Maildir
124
-			fi
125
-			if [ -d $USB_MOUNT/.gnupg ]; then
126
-				echo $'Importing GPG keyring'
127
-				cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
128
-				chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
129
-				GPG_KEYS_IMPORTED="yes"
130
-				if [ ! -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
131
-					echo $'GPG files did not copy'
132
-					exit 73529
133
-				fi
134
-			fi
135
-
136
-			if [ -f $USB_MOUNT/.procmailrc ]; then
137
-				echo $'Importing procmail settings'
138
-				cp $USB_MOUNT/.procmailrc /home/$MY_USERNAME
139
-				chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
140
-			fi
141
-
142
-			if [ -f $USB_MOUNT/private_key.gpg ]; then
143
-				echo $'GPG private key found on USB drive'
144
-				MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
145
-			fi
146
-			if [ -f $USB_MOUNT/public_key.gpg ]; then
147
-				echo $'GPG public key found on USB drive'
148
-				MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
149
-			fi
150
-		fi
151
-		if [ -d $USB_MOUNT/prosody ]; then
152
-			if [ ! -d $XMPP_DIRECTORY ]; then
153
-				mkdir $XMPP_DIRECTORY
154
-			fi
155
-			cp -r $USB_MOUNT/prosody/* $XMPP_DIRECTORY
156
-			chown -R prosody:prosody $XMPP_DIRECTORY
157
-		fi
158
-		if [ -d $USB_MOUNT/.ssh ]; then
159
-			echo $'Importing ssh keys'
160
-			cp -r $USB_MOUNT/.ssh /home/$MY_USERNAME
161
-			chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
162
-			# for security delete the ssh keys from the usb drive
163
-			if [ ! -f /home/$MY_USERNAME/.ssh/id_rsa ]; then
164
-				echo $'ssh files did not copy'
165
-				exit 8
166
-			fi
167
-		fi
168
-		if [ -f $USB_MOUNT/.emacs ]; then
169
-			echo $'Importing .emacs file'
170
-			cp -f $USB_MOUNT/.emacs /home/$MY_USERNAME/.emacs
171
-			chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
172
-		fi
173
-		if [ -d $USB_MOUNT/.emacs.d ]; then
174
-			echo $'Importing .emacs.d directory'
175
-			cp -r $USB_MOUNT/.emacs.d /home/$MY_USERNAME
176
-			chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs.d
177
-		fi
178
-		if [ -d $USB_MOUNT/ssl ]; then
179
-			echo $'Importing SSL certificates'
180
-			cp -r $USB_MOUNT/ssl/* /etc/ssl
181
-			chmod 640 /etc/ssl/certs/*
182
-			chmod 400 /etc/ssl/private/*
183
-			# change ownership of some certificates
184
-			if [ -d /etc/prosody ]; then
185
-				chown prosody:prosody /etc/ssl/private/xmpp.*
186
-				chown prosody:prosody /etc/ssl/certs/xmpp.*
187
-			fi
188
-			if [ -d /etc/dovecot ]; then
189
-				chown root:dovecot /etc/ssl/certs/dovecot.*
190
-				chown root:dovecot /etc/ssl/private/dovecot.*
191
-			fi
192
-			if [ -f /etc/ssl/private/exim.key ]; then
193
-				cp /etc/ssl/private/exim.key /etc/exim4
194
-				cp /etc/ssl/certs/exim.crt /etc/exim4
195
-				cp /etc/ssl/certs/exim.dhparam /etc/exim4
196
-				chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
197
-				chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
198
-			fi
199
-		fi
200
-		if [ -d $USB_MOUNT/personal ]; then
201
-			echo $'Importing personal directory'
202
-			cp -r $USB_MOUNT/personal /home/$MY_USERNAME
203
-			chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/personal
204
-		fi
205
-	else
206
-		if [ -d $USB_MOUNT ]; then
207
-			umount $USB_MOUNT
208
-			rm -rf $USB_MOUNT
209
-		fi
210
-		echo $'No USB drive attached'
211
-	fi
212
-	echo 'search_for_attached_usb_drive' >> $COMPLETION_FILE
109
+    # If a USB drive is attached then search for email,
110
+    # gpg, ssh keys and emacs configuration
111
+    if grep -Fxq "search_for_attached_usb_drive" $COMPLETION_FILE; then
112
+        return
113
+    fi
114
+    if [ -b $USB_DRIVE ]; then
115
+        if [ ! -d $USB_MOUNT ]; then
116
+            echo $'Mounting USB drive'
117
+            mkdir $USB_MOUNT
118
+            mount $USB_DRIVE $USB_MOUNT
119
+        fi
120
+        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
121
+            if [ -d $USB_MOUNT/Maildir ]; then
122
+                echo $'Maildir found on USB drive'
123
+                IMPORT_MAILDIR=$USB_MOUNT/Maildir
124
+            fi
125
+            if [ -d $USB_MOUNT/.gnupg ]; then
126
+                echo $'Importing GPG keyring'
127
+                cp -r $USB_MOUNT/.gnupg /home/$MY_USERNAME
128
+                chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.gnupg
129
+                GPG_KEYS_IMPORTED="yes"
130
+                if [ ! -f /home/$MY_USERNAME/.gnupg/secring.gpg ]; then
131
+                    echo $'GPG files did not copy'
132
+                    exit 73529
133
+                fi
134
+            fi
135
+
136
+            if [ -f $USB_MOUNT/.procmailrc ]; then
137
+                echo $'Importing procmail settings'
138
+                cp $USB_MOUNT/.procmailrc /home/$MY_USERNAME
139
+                chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.procmailrc
140
+            fi
141
+
142
+            if [ -f $USB_MOUNT/private_key.gpg ]; then
143
+                echo $'GPG private key found on USB drive'
144
+                MY_GPG_PRIVATE_KEY=$USB_MOUNT/private_key.gpg
145
+            fi
146
+            if [ -f $USB_MOUNT/public_key.gpg ]; then
147
+                echo $'GPG public key found on USB drive'
148
+                MY_GPG_PUBLIC_KEY=$USB_MOUNT/public_key.gpg
149
+            fi
150
+        fi
151
+        if [ -d $USB_MOUNT/prosody ]; then
152
+            if [ ! -d $XMPP_DIRECTORY ]; then
153
+                mkdir $XMPP_DIRECTORY
154
+            fi
155
+            cp -r $USB_MOUNT/prosody/* $XMPP_DIRECTORY
156
+            chown -R prosody:prosody $XMPP_DIRECTORY
157
+        fi
158
+        if [ -d $USB_MOUNT/.ssh ]; then
159
+            echo $'Importing ssh keys'
160
+            cp -r $USB_MOUNT/.ssh /home/$MY_USERNAME
161
+            chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.ssh
162
+            # for security delete the ssh keys from the usb drive
163
+            if [ ! -f /home/$MY_USERNAME/.ssh/id_rsa ]; then
164
+                echo $'ssh files did not copy'
165
+                exit 8
166
+            fi
167
+        fi
168
+        if [ -f $USB_MOUNT/.emacs ]; then
169
+            echo $'Importing .emacs file'
170
+            cp -f $USB_MOUNT/.emacs /home/$MY_USERNAME/.emacs
171
+            chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs
172
+        fi
173
+        if [ -d $USB_MOUNT/.emacs.d ]; then
174
+            echo $'Importing .emacs.d directory'
175
+            cp -r $USB_MOUNT/.emacs.d /home/$MY_USERNAME
176
+            chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.emacs.d
177
+        fi
178
+        if [ -d $USB_MOUNT/ssl ]; then
179
+            echo $'Importing SSL certificates'
180
+            cp -r $USB_MOUNT/ssl/* /etc/ssl
181
+            chmod 640 /etc/ssl/certs/*
182
+            chmod 400 /etc/ssl/private/*
183
+            # change ownership of some certificates
184
+            if [ -d /etc/prosody ]; then
185
+                chown prosody:prosody /etc/ssl/private/xmpp.*
186
+                chown prosody:prosody /etc/ssl/certs/xmpp.*
187
+            fi
188
+            if [ -d /etc/dovecot ]; then
189
+                chown root:dovecot /etc/ssl/certs/dovecot.*
190
+                chown root:dovecot /etc/ssl/private/dovecot.*
191
+            fi
192
+            if [ -f /etc/ssl/private/exim.key ]; then
193
+                cp /etc/ssl/private/exim.key /etc/exim4
194
+                cp /etc/ssl/certs/exim.crt /etc/exim4
195
+                cp /etc/ssl/certs/exim.dhparam /etc/exim4
196
+                chown root:Debian-exim /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
197
+                chmod 640 /etc/exim4/exim.key /etc/exim4/exim.crt /etc/exim4/exim.dhparam
198
+            fi
199
+        fi
200
+        if [ -d $USB_MOUNT/personal ]; then
201
+            echo $'Importing personal directory'
202
+            cp -r $USB_MOUNT/personal /home/$MY_USERNAME
203
+            chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/personal
204
+        fi
205
+    else
206
+        if [ -d $USB_MOUNT ]; then
207
+            umount $USB_MOUNT
208
+            rm -rf $USB_MOUNT
209
+        fi
210
+        echo $'No USB drive attached'
211
+    fi
212
+    echo 'search_for_attached_usb_drive' >> $COMPLETION_FILE
213 213
 }
214 214
 
215 215
 function mark_admin_user_account {
216
-	if ! grep -q "Admin user:" $COMPLETION_FILE; then
217
-		echo "Admin user:$MY_USERNAME" >> $COMPLETION_FILE
218
-	fi
216
+    if ! grep -q "Admin user:" $COMPLETION_FILE; then
217
+        echo "Admin user:$MY_USERNAME" >> $COMPLETION_FILE
218
+    fi
219 219
 }
220 220
 
221 221
 function remove_instructions_from_motd {
222
-	sed -i '/## /d' /etc/motd
222
+    sed -i '/## /d' /etc/motd
223 223
 }
224 224
 
225 225
 function remove_default_user {
226
-	# make sure you don't use the default user account
227
-	if [[ $MY_USERNAME == "debian" ]]; then
228
-		echo 'Do not use the default debian user account. Create a different user with: adduser [username]'
229
-		exit 68
230
-	fi
231
-	# remove the default debian user to prevent it from becoming an attack vector
232
-	if [ -d /home/debian ]; then
233
-		userdel -r debian
234
-		echo 'Default debian user account removed'
235
-	fi
226
+    # make sure you don't use the default user account
227
+    if [[ $MY_USERNAME == "debian" ]]; then
228
+        echo 'Do not use the default debian user account. Create a different user with: adduser [username]'
229
+        exit 68
230
+    fi
231
+    # remove the default debian user to prevent it from becoming an attack vector
232
+    if [ -d /home/debian ]; then
233
+        userdel -r debian
234
+        echo 'Default debian user account removed'
235
+    fi
236
+}
237
+
238
+function upgrade_installation {
239
+    if [ ! -d /usr/share/${PROJECT_NAME}/apps ]; then
240
+        mkdir -p /usr/share/${PROJECT_NAME}/apps
241
+    fi
242
+    mv /usr/local/bin/${PROJECT_NAME}-app-* /usr/share/${PROJECT_NAME}/apps
236 243
 }
237 244
 
238 245
 function setup_firewall {
239
-	configure_firewall
240
-	configure_firewall_ping
241
-	configure_firewall_for_dns
242
-	configure_firewall_for_avahi
246
+    configure_firewall
247
+    configure_firewall_ping
248
+    configure_firewall_for_dns
249
+    configure_firewall_for_avahi
243 250
 }
244 251
 
245
-function setup_utils {
246
-	read_configuration
247
-	set_default_onion_domains
248
-	locale_setup
249
-	parse_args
250
-	check_domains
251
-	install_static_network
252
-	remove_default_user
253
-	setup_firewall
254
-	create_repo_sources
255
-	configure_dns
256
-	initial_setup
257
-	install_tor
258
-	#resolve_dns_via_tor
259
-	install_command_line_browser
260
-	enable_ssh_via_onion
261
-	check_date
262
-	install_dynamicdns
263
-	randomize_cron
264
-	create_freedns_updater
265
-	mark_admin_user_account
266
-	enforce_good_passwords
267
-	install_editor
268
-	change_login_message
269
-	enable_zram
270
-	random_number_generator
271
-	set_your_domain_name
272
-	time_synchronisation_tlsdate
273
-	configure_internet_protocol
274
-	create_git_project
275
-	setup_wifi
276
-	configure_ssh
277
-	configure_ssh_onion
278
-	allow_ssh_to_onion_address
279
-	remove_instructions_from_motd
280
-	check_hwrng
281
-	search_for_attached_usb_drive
282
-	regenerate_ssh_keys
283
-	create_mirrors
284
-	create_upgrade_script
285
-	letsencrypt_renewals
286
-	install_watchdog_script
287
-	configure_avahi
288
-	create_avahi_onion_domains
289
-	#install_atheros_wifi
290
-	route_outgoing_traffic_through_tor
291
-	upgrade_golang
252
+function setup_utils {  
253
+    read_configuration
254
+    upgrade_installation
255
+    set_default_onion_domains
256
+    locale_setup
257
+    parse_args
258
+    check_domains
259
+    install_static_network
260
+    remove_default_user
261
+    setup_firewall
262
+    create_repo_sources
263
+    configure_dns
264
+    initial_setup
265
+    install_tor
266
+    #resolve_dns_via_tor
267
+    install_command_line_browser
268
+    enable_ssh_via_onion
269
+    check_date
270
+    install_dynamicdns
271
+    randomize_cron
272
+    create_freedns_updater
273
+    mark_admin_user_account
274
+    enforce_good_passwords
275
+    install_editor
276
+    change_login_message
277
+    enable_zram
278
+    random_number_generator
279
+    set_your_domain_name
280
+    time_synchronisation_tlsdate
281
+    configure_internet_protocol
282
+    create_git_project
283
+    setup_wifi
284
+    configure_ssh
285
+    configure_ssh_onion
286
+    allow_ssh_to_onion_address
287
+    remove_instructions_from_motd
288
+    check_hwrng
289
+    search_for_attached_usb_drive
290
+    regenerate_ssh_keys
291
+    create_mirrors
292
+    create_upgrade_script
293
+    letsencrypt_renewals
294
+    install_watchdog_script
295
+    configure_avahi
296
+    create_avahi_onion_domains
297
+    #install_atheros_wifi
298
+    route_outgoing_traffic_through_tor
299
+    upgrade_golang
292 300
 }
293 301
 
294 302
 function setup_email {
295
-	install_email
296
-	create_procmail
297
-	handle_admin_emails
298
-	spam_filtering
299
-	configure_imap
300
-	#configure_imap_client_certs
301
-	configure_gpg
302
-	refresh_gpg_keys
303
-	configure_backup_key
304
-	install_monkeysphere
305
-	encrypt_incoming_email
306
-	encrypt_outgoing_email
307
-	email_client
308
-	email_archiving
309
-	email_from_address
310
-	create_public_mailing_list
311
-	#create_private_mailing_list
312
-	encrypt_all_email
313
-	import_email
303
+    install_email
304
+    create_procmail
305
+    handle_admin_emails
306
+    spam_filtering
307
+    configure_imap
308
+    #configure_imap_client_certs
309
+    configure_gpg
310
+    refresh_gpg_keys
311
+    configure_backup_key
312
+    install_monkeysphere
313
+    encrypt_incoming_email
314
+    encrypt_outgoing_email
315
+    email_client
316
+    email_archiving
317
+    email_from_address
318
+    create_public_mailing_list
319
+    #create_private_mailing_list
320
+    encrypt_all_email
321
+    import_email
314 322
 }
315 323
 
316 324
 function setup_web {
317
-	install_web_server
318
-	install_web_server_access_control
325
+    install_web_server
326
+    install_web_server_access_control
319 327
 }
320 328
 
321 329
 function setup_apps {
322
-	function_check choose_apps_for_variant
323
-	choose_apps_for_variant "$SYSTEM_TYPE"
324
-
325
-	echo $"System variant: $SYSTEM_TYPE"
326
-	echo $'The following apps have been selected'
327
-	echo ''
328
-	function_check list_chosen_apps
329
-	list_chosen_apps
330
-	echo ''
331
-
332
-	function_check install_apps
333
-	install_apps
330
+    function_check choose_apps_for_variant
331
+    choose_apps_for_variant "$SYSTEM_TYPE"
332
+
333
+    echo $"System variant: $SYSTEM_TYPE"
334
+    echo $'The following apps have been selected'
335
+    echo ''
336
+    function_check list_chosen_apps
337
+    list_chosen_apps
338
+    echo ''
339
+
340
+    function_check install_apps
341
+    install_apps
334 342
 }
335 343
 
336 344
 # NOTE: deliberately no exit 0