瀏覽代碼

Loading of app variables

Bob Mottram 8 年之前
父節點
當前提交
3ab2687019

+ 1
- 0
src/freedombone-adduser 查看文件

216
 do
216
 do
217
     if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
217
     if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
218
         echo $"Adding user to ${app_name}"
218
         echo $"Adding user to ${app_name}"
219
+        app_load_variables ${app_name}
219
         retval=$(add_user_${app_name} "$MY_USERNAME" "$NEW_USER_PASSWORD")
220
         retval=$(add_user_${app_name} "$MY_USERNAME" "$NEW_USER_PASSWORD")
220
         if [[ $retval != '0' ]]; then
221
         if [[ $retval != '0' ]]; then
221
             echo $"Failed with error code ${retval}"
222
             echo $"Failed with error code ${retval}"

+ 2
- 0
src/freedombone-app-babel 查看文件

33
 ENABLE_BABEL="no"
33
 ENABLE_BABEL="no"
34
 BABEL_PORT=6696
34
 BABEL_PORT=6696
35
 
35
 
36
+babel_variables=()
37
+
36
 function install_interactive_babel {
38
 function install_interactive_babel {
37
     echo -n ''
39
     echo -n ''
38
 }
40
 }

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

33
 ENABLE_BATMAN="no"
33
 ENABLE_BATMAN="no"
34
 BATMAN_CELLID='any'
34
 BATMAN_CELLID='any'
35
 
35
 
36
+batman_variables=(MY_USERNAME
37
+                  BATMAN_CELLID)
38
+
36
 function install_interactive_batman {
39
 function install_interactive_batman {
37
     echo -n ''
40
     echo -n ''
38
 }
41
 }

+ 11
- 35
src/freedombone-app-blog 查看文件

38
 MY_BLOG_TITLE="My Blog"
38
 MY_BLOG_TITLE="My Blog"
39
 MY_BLOG_SUBTITLE="Another ${PROJECT_NAME} Blog"
39
 MY_BLOG_SUBTITLE="Another ${PROJECT_NAME} Blog"
40
 
40
 
41
+blog_variables=(FULLBLOG_REPO
42
+                FULLBLOG_COMMIT
43
+                FULLBLOG_DOMAIN_NAME
44
+                FULLBLOG_CODE
45
+                MY_BLOG_TITLE
46
+                MY_BLOG_SUBTITLE
47
+                ONION_ONLY
48
+                DDNS_PROVIDER
49
+                MY_USERNAME)
50
+
41
 function remove_user_blog {
51
 function remove_user_blog {
42
     remove_username="$1"
52
     remove_username="$1"
43
 
53
 
44
-    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "blog domain" | head -n 1 | awk -F ':' '{print $2}')
45
     if [ -f /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
54
     if [ -f /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini ]; then
46
         rm /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
55
         rm /var/www/${FULLBLOG_DOMAIN_NAME}/htdocs/config/users/${remove_username}.ini
47
     fi
56
     fi
56
     new_username="$1"
65
     new_username="$1"
57
     new_user_password="$2"
66
     new_user_password="$2"
58
 
67
 
59
-    FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "blog domain" | head -n 1 | awk -F ':' '{print $2}')
60
     if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
68
     if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
61
         echo '2'
69
         echo '2'
62
         return
70
         return
100
     if [ ! $ONION_ONLY ]; then
108
     if [ ! $ONION_ONLY ]; then
101
         ONION_ONLY='no'
109
         ONION_ONLY='no'
102
     fi
110
     fi
103
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
104
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
105
-    fi
106
-    if grep -q "MY_BLOG_TITLE" $CONFIGURATION_FILE; then
107
-        MY_BLOG_TITLE=$(grep "MY_BLOG_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
108
-    fi
109
-    if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
110
-        FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
111
-    fi
112
-    if grep -q "FULLBLOG_CODE" $CONFIGURATION_FILE; then
113
-        FULLBLOG_CODE=$(grep "FULLBLOG_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
114
-    fi
115
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
116
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
117
-    fi
118
 
111
 
119
     if [[ $ONION_ONLY != "no" ]]; then
112
     if [[ $ONION_ONLY != "no" ]]; then
120
         MY_BLOG_TITLE='My Blog'
113
         MY_BLOG_TITLE='My Blog'
351
     if [[ $(app_is_installed blog) == "0" ]]; then
344
     if [[ $(app_is_installed blog) == "0" ]]; then
352
         return
345
         return
353
     fi
346
     fi
347
+
354
     if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
348
     if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
355
         FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
349
         FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
356
     fi
350
     fi
630
     if [ ! $ONION_ONLY ]; then
624
     if [ ! $ONION_ONLY ]; then
631
         ONION_ONLY='no'
625
         ONION_ONLY='no'
632
     fi
626
     fi
633
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
634
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
635
-    fi
636
-    if grep -q "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE; then
637
-        FULLBLOG_DOMAIN_NAME=$(grep "FULLBLOG_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
638
-    fi
639
-    if grep -q "FULLBLOG_CODE" $CONFIGURATION_FILE; then
640
-        FULLBLOG_CODE=$(grep "FULLBLOG_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
641
-    fi
642
-    if grep -q "MY_BLOG_TITLE" $CONFIGURATION_FILE; then
643
-        MY_BLOG_TITLE=$(grep "MY_BLOG_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
644
-    fi
645
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
646
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
647
-    fi
648
-    if grep -q "MY_USERNAME" $CONFIGURATION_FILE; then
649
-        MY_USERNAME=$(grep "MY_USERNAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
650
-    fi
651
 
627
 
652
     if [ ! $FULLBLOG_DOMAIN_NAME ]; then
628
     if [ ! $FULLBLOG_DOMAIN_NAME ]; then
653
         echo $'The blog domain name was not specified'
629
         echo $'The blog domain name was not specified'

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

35
 PELICAN_PLUGINS_REPO="https://github.com/getpelican/pelican-plugins"
35
 PELICAN_PLUGINS_REPO="https://github.com/getpelican/pelican-plugins"
36
 DEFAULT_BLOG_TITLE=$"Freedombone Blog"
36
 DEFAULT_BLOG_TITLE=$"Freedombone Blog"
37
 
37
 
38
+blogstatic_variables=(MY_USERNAME
39
+                      STATIC_BLOG_DOMAIN)
40
+
38
 function configure_interactive_blogstatic {
41
 function configure_interactive_blogstatic {
39
     echo -n ''
42
     echo -n ''
40
 }
43
 }

+ 10
- 0
src/freedombone-app-cjdns 查看文件

41
 CJDCMD_REPO="https://github.com/inhies/cjdcmd"
41
 CJDCMD_REPO="https://github.com/inhies/cjdcmd"
42
 CJDCMD_COMMIT='973cca6ed0eecf9041c3403a40193c0b1291b808'
42
 CJDCMD_COMMIT='973cca6ed0eecf9041c3403a40193c0b1291b808'
43
 
43
 
44
+cjdns_variables=(MY_USERNAME
45
+                 CJDNS_PORT
46
+                 CJDNS_REPO
47
+                 CJDNS_COMMIT
48
+                 CJDCMD_REPO
49
+                 CJDCMD_COMMIT
50
+                 CJDNS_IPV6
51
+                 CJDNS_PUBLIC_KEY
52
+                 CJDNS_PRIVATE_KEY)
53
+
44
 function install_interactive_cjdns {
54
 function install_interactive_cjdns {
45
     echo -n ''
55
     echo -n ''
46
 }
56
 }

+ 5
- 0
src/freedombone-app-dlna 查看文件

30
 
30
 
31
 VARIANTS='full media'
31
 VARIANTS='full media'
32
 
32
 
33
+dlna_variables=(SYSTEM_TYPE
34
+                USB_MOUNT
35
+                INSTALLED_WITHIN_DOCKER
36
+                MY_USERNAME)
37
+
33
 function configure_interactive_dlna {
38
 function configure_interactive_dlna {
34
     while true
39
     while true
35
     do
40
     do

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

30
 
30
 
31
 VARIANTS='all'
31
 VARIANTS='all'
32
 
32
 
33
+emacs_variables=(USB_MOUNT
34
+                 MY_USERNAME)
35
+
33
 function install_interactive_emacs {
36
 function install_interactive_emacs {
34
     echo -n ''
37
     echo -n ''
35
 }
38
 }

+ 15
- 16
src/freedombone-app-gnusocial 查看文件

56
 # script which causes old posts to expire
56
 # script which causes old posts to expire
57
 gnusocial_expire_script=/usr/bin/gnusocial-expire
57
 gnusocial_expire_script=/usr/bin/gnusocial-expire
58
 
58
 
59
+gnusocial_variables=(MICROBLOG_COMMIT
60
+                     ONION_ONLY
61
+                     MICROBLOG_DOMAIN_NAME
62
+                     MICROBLOG_CODE
63
+                     MICROBLOG_WELCOME_MESSAGE
64
+                     MICROBLOG_BACKGROUND_IMAGE_URL
65
+                     DDNS_PROVIDER
66
+                     MICROBLOG_MARKDOWN_REPO
67
+                     MICROBLOG_MARKDOWN_COMMIT
68
+                     SHARINGS_REPO
69
+                     SHARINGS_COMMIT
70
+                     SHARINGS_THEME_REPO
71
+                     SHARINGS_THEME_COMMIT
72
+                     MY_USERNAME)
73
+
59
 function remove_user_gnusocial {
74
 function remove_user_gnusocial {
60
     remove_username="$1"
75
     remove_username="$1"
61
 
76
 
86
         ONION_ONLY='no'
101
         ONION_ONLY='no'
87
     fi
102
     fi
88
 
103
 
89
-    read_config_param "MICROBLOG_COMMIT"
90
-    read_config_param "ONION_ONLY"
91
-    read_config_param "MICROBLOG_DOMAIN_NAME"
92
-    read_config_param "MICROBLOG_CODE"
93
-    read_config_param "MICROBLOG_WELCOME_MESSAGE"
94
-    read_config_param "MICROBLOG_BACKGROUND_IMAGE_URL"
95
-    read_config_param "DDNS_PROVIDER"
96
-
97
     if [[ $ONION_ONLY != "no" ]]; then
104
     if [[ $ONION_ONLY != "no" ]]; then
98
         MICROBLOG_DOMAIN_NAME='microblog.local'
105
         MICROBLOG_DOMAIN_NAME='microblog.local'
99
     else
106
     else
241
     if grep -q "gnusocial domain" $COMPLETION_FILE; then
248
     if grep -q "gnusocial domain" $COMPLETION_FILE; then
242
         MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
249
         MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | head -n 1 | awk -F ':' '{print $2}')
243
     fi
250
     fi
244
-    read_config_param "MICROBLOG_COMMIT"
245
 
251
 
246
     # update to the next commit
252
     # update to the next commit
247
     function_check set_repo_commit
253
     function_check set_repo_commit
1031
     if [ ! $ONION_ONLY ]; then
1037
     if [ ! $ONION_ONLY ]; then
1032
         ONION_ONLY='no'
1038
         ONION_ONLY='no'
1033
     fi
1039
     fi
1034
-    read_config_param "MICROBLOG_COMMIT"
1035
-    read_config_param "ONION_ONLY"
1036
-    read_config_param "MICROBLOG_DOMAIN_NAME"
1037
-    read_config_param "MICROBLOG_CODE"
1038
-    read_config_param "MICROBLOG_WELCOME_MESSAGE"
1039
-    read_config_param "MICROBLOG_BACKGROUND_IMAGE_URL"
1040
-    read_config_param "DDNS_PROVIDER"
1041
 
1040
 
1042
     install_gnusocial_main
1041
     install_gnusocial_main
1043
     expire_gnusocial_posts
1042
     expire_gnusocial_posts

+ 258
- 285
src/freedombone-app-gogs 查看文件

39
 GIT_ADMIN_PASSWORD=
39
 GIT_ADMIN_PASSWORD=
40
 GOGS_BIN=
40
 GOGS_BIN=
41
 
41
 
42
+gogs_variables=(ONION_ONLY
43
+                GOGS_COMMIT
44
+                GIT_ADMIN_PASSWORD
45
+                GIT_DOMAIN_NAME
46
+                GIT_CODE
47
+                GIT_ONION_PORT
48
+                MY_USERNAME
49
+                GOGS_VERSION
50
+                DDNS_PROVIDER
51
+                ARCHITECTURE)
52
+
42
 function install_interactive_gogs {
53
 function install_interactive_gogs {
43
-    if [ ! $ONION_ONLY ]; then
44
-        ONION_ONLY='no'
45
-    fi
46
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
47
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
48
-    fi
49
-    if grep -q "GIT_DOMAIN_NAME" $CONFIGURATION_FILE; then
50
-        GIT_DOMAIN_NAME=$(grep "GIT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
51
-    fi
52
-    if grep -q "GIT_CODE" $CONFIGURATION_FILE; then
53
-        GIT_CODE=$(grep "GIT_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
54
-    fi
55
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
56
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
57
-    fi
58
     if [[ $ONION_ONLY != "no" ]]; then
54
     if [[ $ONION_ONLY != "no" ]]; then
59
         GIT_DOMAIN_NAME='git.local'
55
         GIT_DOMAIN_NAME='git.local'
60
     else
56
     else
84
                 255) exit 1;;
80
                 255) exit 1;;
85
             esac
81
             esac
86
             GIT_DOMAIN_NAME=$(cat $data | sed -n 1p)
82
             GIT_DOMAIN_NAME=$(cat $data | sed -n 1p)
87
-            if [ $GIT_DOMAIN_NAME ]; then
83
+            if [ ${GIT_DOMAIN_NAME} ]; then
88
                 TEST_DOMAIN_NAME=$GIT_DOMAIN_NAME
84
                 TEST_DOMAIN_NAME=$GIT_DOMAIN_NAME
89
                 validate_domain_name
85
                 validate_domain_name
90
-                if [[ $TEST_DOMAIN_NAME != $GIT_DOMAIN_NAME ]]; then
86
+                if [[ ${TEST_DOMAIN_NAME} != ${GIT_DOMAIN_NAME} ]]; then
91
                     GIT_DOMAIN_NAME=
87
                     GIT_DOMAIN_NAME=
92
-                    dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
88
+                    dialog --title $"Domain name validation" --msgbox "${TEST_DOMAIN_NAME}" 15 50
93
                 else
89
                 else
94
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
90
+                    if [[ ${DDNS_PROVIDER} == "default@freedns.afraid.org" ]]; then
95
                         GIT_CODE=$(cat $data | sed -n 2p)
91
                         GIT_CODE=$(cat $data | sed -n 2p)
96
                         validate_freedns_code "$GIT_CODE"
92
                         validate_freedns_code "$GIT_CODE"
97
-                        if [ ! $VALID_CODE ]; then
93
+                        if [ ! ${VALID_CODE} ]; then
98
                             GIT_DOMAIN_NAME=
94
                             GIT_DOMAIN_NAME=
99
                         fi
95
                         fi
100
                     fi
96
                     fi
102
             else
98
             else
103
                 DEVELOPER_DETAILS_COMPLETE="yes"
99
                 DEVELOPER_DETAILS_COMPLETE="yes"
104
             fi
100
             fi
105
-            if [ $GIT_DOMAIN_NAME ]; then
101
+            if [ ${GIT_DOMAIN_NAME} ]; then
106
                 DEVELOPER_DETAILS_COMPLETE="yes"
102
                 DEVELOPER_DETAILS_COMPLETE="yes"
107
             fi
103
             fi
108
         done
104
         done
109
 
105
 
110
         # save the results in the config file
106
         # save the results in the config file
111
-        if grep -q "GIT_DOMAIN_NAME=" $CONFIGURATION_FILE; then
112
-            sed -i "s|GIT_DOMAIN_NAME=.*|GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME|g" $CONFIGURATION_FILE
107
+        if grep -q "GIT_DOMAIN_NAME=" ${CONFIGURATION_FILE}; then
108
+            sed -i "s|GIT_DOMAIN_NAME=.*|GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME|g" ${CONFIGURATION_FILE}
113
         else
109
         else
114
-            echo "GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME" >> $CONFIGURATION_FILE
110
+            echo "GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME" >> ${CONFIGURATION_FILE}
115
         fi
111
         fi
116
-        if grep -q "GIT_CODE=" $CONFIGURATION_FILE; then
117
-            sed -i "s|GIT_CODE=.*|GIT_CODE=$GIT_CODE|g" $CONFIGURATION_FILE
112
+        if grep -q "GIT_CODE=" ${CONFIGURATION_FILE}; then
113
+            sed -i "s|GIT_CODE=.*|GIT_CODE=$GIT_CODE|g" ${CONFIGURATION_FILE}
118
         else
114
         else
119
-            echo "GIT_CODE=$GIT_CODE" >> $CONFIGURATION_FILE
115
+            echo "GIT_CODE=$GIT_CODE" >> ${CONFIGURATION_FILE}
120
         fi
116
         fi
121
     fi
117
     fi
122
 }
118
 }
126
 }
122
 }
127
 
123
 
128
 function gogs_parameters {
124
 function gogs_parameters {
129
-    if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
125
+    if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then
130
         CURR_ARCH=386
126
         CURR_ARCH=386
131
     fi
127
     fi
132
-    if [[ $ARCHITECTURE == *"amd64" || $ARCHITECTURE == "x86_64" ]]; then
128
+    if [[ ${ARCHITECTURE} == *"amd64" || ${ARCHITECTURE} == "x86_64" ]]; then
133
         CURR_ARCH=amd64
129
         CURR_ARCH=amd64
134
     fi
130
     fi
135
-    if [[ $ARCHITECTURE == *"arm"* ]]; then
131
+    if [[ ${ARCHITECTURE} == *"arm"* ]]; then
136
         CURR_ARCH=arm
132
         CURR_ARCH=arm
137
     fi
133
     fi
138
-    if [ ! $CURR_ARCH ]; then
134
+    if [ ! ${CURR_ARCH} ]; then
139
         echo $'No architecture specified'
135
         echo $'No architecture specified'
140
         ARCHITECTURE=$(uname -m)
136
         ARCHITECTURE=$(uname -m)
141
-        if [[ $ARCHITECTURE == "arm"* ]]; then
137
+        if [[ ${ARCHITECTURE} == "arm"* ]]; then
142
             CURR_ARCH=arm
138
             CURR_ARCH=arm
143
         fi
139
         fi
144
-        if [[ $ARCHITECTURE == "amd"* || $ARCHITECTURE == "x86_64" ]]; then
140
+        if [[ ${ARCHITECTURE} == "amd"* || ${ARCHITECTURE} == "x86_64" ]]; then
145
             CURR_ARCH=amd64
141
             CURR_ARCH=amd64
146
         fi
142
         fi
147
-        if [[ $ARCHITECTURE == *"386" || $ARCHITECTURE == *"686" ]]; then
143
+        if [[ ${ARCHITECTURE} == *"386" || ${ARCHITECTURE} == *"686" ]]; then
148
             CURR_ARCH=386
144
             CURR_ARCH=386
149
         fi
145
         fi
150
     fi
146
     fi
153
 }
149
 }
154
 
150
 
155
 function get_mariadb_git_admin_password {
151
 function get_mariadb_git_admin_password {
156
-    if [ -f /home/$MY_USERNAME/README ]; then
157
-        if grep -q "Gogs admin user password" /home/$MY_USERNAME/README; then
158
-            GIT_ADMIN_PASSWORD=$(cat /home/$MY_USERNAME/README | grep "Gogs admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
152
+    if [ -f /home/${MY_USERNAME}/README ]; then
153
+        if grep -q "Gogs admin user password" /home/${MY_USERNAME}/README; then
154
+            GIT_ADMIN_PASSWORD=$(cat /home/${MY_USERNAME}/README | grep "Gogs admin user password" | awk -F ':' '{print $2}' | sed 's/^ *//')
159
         fi
155
         fi
160
     fi
156
     fi
161
 }
157
 }
163
 function gogs_create_database {
159
 function gogs_create_database {
164
     function_check get_mariadb_git_admin_password
160
     function_check get_mariadb_git_admin_password
165
     get_mariadb_git_admin_password
161
     get_mariadb_git_admin_password
166
-    if [ ! $GIT_ADMIN_PASSWORD ]; then
167
-        if [ -f $IMAGE_PASSWORD_FILE ]; then
162
+
163
+    if [ ! ${GIT_ADMIN_PASSWORD} ]; then
164
+        if [ -f ${IMAGE_PASSWORD_FILE} ]; then
168
             GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
165
             GIT_ADMIN_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
169
         else
166
         else
170
             GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
167
             GIT_ADMIN_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
188
     fi
185
     fi
189
 
186
 
190
     CURR_GOGS_VERSION=$(cat $COMPLETION_FILE | grep "gogs version" | head -n 1 | awk -F ':' '{print $2}')
187
     CURR_GOGS_VERSION=$(cat $COMPLETION_FILE | grep "gogs version" | head -n 1 | awk -F ':' '{print $2}')
191
-    if [[ "$CURR_GOGS_VERSION" == "$GOGS_VERSION" ]]; then
188
+    if [[ "${CURR_GOGS_VERSION}" == "${GOGS_VERSION}" ]]; then
192
         return
189
         return
193
     fi
190
     fi
194
 
191
 
198
         mkdir -p ${INSTALL_DIR}
195
         mkdir -p ${INSTALL_DIR}
199
     fi
196
     fi
200
     cd ${INSTALL_DIR}
197
     cd ${INSTALL_DIR}
201
-    if [ -d $INSTALL_DIR/gogs ]; then
202
-        rm -rf $INSTALL_DIR/gogs
198
+    if [ -d ${INSTALL_DIR}/gogs ]; then
199
+        rm -rf ${INSTALL_DIR}/gogs
203
     fi
200
     fi
204
     GOGS_FILE=linux_${CURR_ARCH}.tar.gz
201
     GOGS_FILE=linux_${CURR_ARCH}.tar.gz
205
-    if [ ! -f $GOGS_FILE ]; then
202
+    if [ ! -f ${GOGS_FILE} ]; then
206
         wget ${GOGS_BIN}
203
         wget ${GOGS_BIN}
207
     fi
204
     fi
208
-    if [ ! -f $GOGS_FILE ]; then
205
+    if [ ! -f ${GOGS_FILE} ]; then
209
         GOGS_FILE=linux_${CURR_ARCH}.zip
206
         GOGS_FILE=linux_${CURR_ARCH}.zip
210
         GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/${GOGS_FILE}"
207
         GOGS_BIN="https://github.com/gogits/gogs/releases/download/v${GOGS_VERSION}/${GOGS_FILE}"
211
         if [ ! -f ${GOGS_FILE} ]; then
208
         if [ ! -f ${GOGS_FILE} ]; then
220
     else
217
     else
221
         tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
218
         tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
222
     fi
219
     fi
223
-    if [ ! -d $INSTALL_DIR/gogs ]; then
220
+    if [ ! -d ${INSTALL_DIR}/gogs ]; then
224
         exit 37823
221
         exit 37823
225
     fi
222
     fi
226
-    rm -rf /home/$GOGS_USERNAME/*
227
-    cp -r $INSTALL_DIR/gogs/* /home/$GOGS_USERNAME
223
+    rm -rf /home/${GOGS_USERNAME}/*
224
+    cp -r ${INSTALL_DIR}/gogs/* /home/${GOGS_USERNAME}
228
     if [ -f ${GOGS_FILE} ]; then
225
     if [ -f ${GOGS_FILE} ]; then
229
         rm ${GOGS_FILE}
226
         rm ${GOGS_FILE}
230
     fi
227
     fi
231
 
228
 
232
-    sed -i "s|gogs version.*|gogs version:$GOGS_VERSION|g" $COMPLETION_FILE
229
+    sed -i "s|gogs version.*|gogs version:$GOGS_VERSION|g" ${COMPLETION_FILE}
233
     systemctl restart gogs
230
     systemctl restart gogs
234
 }
231
 }
235
 
232
 
236
 function backup_local_gogs {
233
 function backup_local_gogs {
237
-    if ! grep -q "gogs domain" $COMPLETION_FILE; then
234
+    if ! grep -q "gogs domain" ${COMPLETION_FILE}; then
238
         return
235
         return
239
     fi
236
     fi
240
 
237
 
241
-    if [ ! -d /home/$GOGS_USERNAME/gogs-repositories ]; then
238
+    if [ ! -d /home/${GOGS_USERNAME}/gogs-repositories ]; then
242
         return
239
         return
243
     fi
240
     fi
244
 
241
 
245
-    GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gogs domain" | awk -F ':' '{print $2}')
246
-
247
     echo $"Backing up gogs"
242
     echo $"Backing up gogs"
248
 
243
 
249
     function_check backup_database_to_usb
244
     function_check backup_database_to_usb
250
     backup_database_to_usb gogs
245
     backup_database_to_usb gogs
251
 
246
 
252
     function_check backup_directory_to_usb
247
     function_check backup_directory_to_usb
253
-    backup_directory_to_usb /home/$GOGS_USERNAME/custom gogs
254
-    backup_directory_to_usb /home/$GOGS_USERNAME/gogs-repositories gogsrepos
255
-    backup_directory_to_usb /home/$GOGS_USERNAME/.ssh gogsssh
248
+    backup_directory_to_usb /home/${GOGS_USERNAME}/custom gogs
249
+    backup_directory_to_usb /home/${GOGS_USERNAME}/gogs-repositories gogsrepos
250
+    backup_directory_to_usb /home/${GOGS_USERNAME}/.ssh gogsssh
256
 
251
 
257
     echo $"Gogs backup complete"
252
     echo $"Gogs backup complete"
258
 }
253
 }
259
 
254
 
260
 function restore_local_gogs {
255
 function restore_local_gogs {
261
-    if ! grep -q "gogs domain" $COMPLETION_FILE; then
256
+    if ! grep -q "gogs domain" ${COMPLETION_FILE}; then
262
         return
257
         return
263
     fi
258
     fi
264
-    if [ ! -d /home/$GOGS_USERNAME/gogs-repositories ]; then
259
+    if [ ! -d /home/${GOGS_USERNAME}/gogs-repositories ]; then
265
         return
260
         return
266
     fi
261
     fi
267
 
262
 
268
-    GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gogs domain" | awk -F ':' '{print $2}')
269
-
270
     if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
263
     if [ ${#GIT_DOMAIN_NAME} -gt 2 ]; then
271
         function_check gogs_create_database
264
         function_check gogs_create_database
272
         gogs_create_database
265
         gogs_create_database
274
         function_check restore_database
267
         function_check restore_database
275
         restore_database gogs ${GIT_DOMAIN_NAME}
268
         restore_database gogs ${GIT_DOMAIN_NAME}
276
         temp_restore_dir=/root/tempgogs
269
         temp_restore_dir=/root/tempgogs
277
-        if [ -d $USB_MOUNT/backup/gogs ]; then
270
+        if [ -d ${USB_MOUNT}/backup/gogs ]; then
278
             echo $"Restoring Gogs settings"
271
             echo $"Restoring Gogs settings"
279
-            if [ ! -d /home/$GOGS_USERNAME/custom ]; then
280
-                mkdir -p /home/$GOGS_USERNAME/custom
272
+            if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
273
+                mkdir -p /home/${GOGS_USERNAME}/custom
281
             fi
274
             fi
282
-            cp -r ${temp_restore_dir}/home/$GOGS_USERNAME/custom/* /home/$GOGS_USERNAME/custom
275
+            cp -r ${temp_restore_dir}/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom
283
             if [ ! "$?" = "0" ]; then
276
             if [ ! "$?" = "0" ]; then
284
                 function_check set_user_permissions
277
                 function_check set_user_permissions
285
                 set_user_permissions
278
                 set_user_permissions
290
             echo $"Restoring Gogs repos"
283
             echo $"Restoring Gogs repos"
291
             function_check restore_directory_from_usb
284
             function_check restore_directory_from_usb
292
             restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
285
             restore_directory_from_usb ${temp_restore_dir}repos gogsrepos
293
-            cp -r ${temp_restore_dir}repos/home/$GOGS_USERNAME/gogs-repositories/* /home/$GOGS_USERNAME/gogs-repositories/
286
+            cp -r ${temp_restore_dir}repos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
294
             if [ ! "$?" = "0" ]; then
287
             if [ ! "$?" = "0" ]; then
295
                 function_check set_user_permissions
288
                 function_check set_user_permissions
296
                 set_user_permissions
289
                 set_user_permissions
301
             echo $"Restoring Gogs authorized_keys"
294
             echo $"Restoring Gogs authorized_keys"
302
             function_check restore_directory_from_usb
295
             function_check restore_directory_from_usb
303
             restore_directory_from_usb ${temp_restore_dir}ssh gogsssh
296
             restore_directory_from_usb ${temp_restore_dir}ssh gogsssh
304
-            if [ ! -d /home/$GOGS_USERNAME/.ssh ]; then
305
-                mkdir /home/$GOGS_USERNAME/.ssh
297
+            if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
298
+                mkdir /home/${GOGS_USERNAME}/.ssh
306
             fi
299
             fi
307
-            cp -r ${temp_restore_dir}ssh/home/$GOGS_USERNAME/.ssh/* /home/$GOGS_USERNAME/.ssh/
300
+            cp -r ${temp_restore_dir}ssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
308
             if [ ! "$?" = "0" ]; then
301
             if [ ! "$?" = "0" ]; then
309
                 function_check set_user_permissions
302
                 function_check set_user_permissions
310
                 set_user_permissions
303
                 set_user_permissions
315
             rm -rf ${temp_restore_dir}
308
             rm -rf ${temp_restore_dir}
316
             rm -rf ${temp_restore_dir}repos
309
             rm -rf ${temp_restore_dir}repos
317
             rm -rf ${temp_restore_dir}ssh
310
             rm -rf ${temp_restore_dir}ssh
318
-            chown -R $GOGS_USERNAME:$GOGS_USERNAME /home/$GOGS_USERNAME
311
+            chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
319
         fi
312
         fi
320
     fi
313
     fi
321
 }
314
 }
322
 
315
 
323
 function backup_remote_gogs {
316
 function backup_remote_gogs {
324
     if [ -d /home/$GOGS_USERNAME ]; then
317
     if [ -d /home/$GOGS_USERNAME ]; then
325
-        GIT_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gogs domain" | awk -F ':' '{print $2}')
326
         function_check suspend_site
318
         function_check suspend_site
327
         suspend_site ${GIT_DOMAIN_NAME}
319
         suspend_site ${GIT_DOMAIN_NAME}
328
 
320
 
358
         gogs_create_database
350
         gogs_create_database
359
 
351
 
360
         function_check restore_database_from_friend
352
         function_check restore_database_from_friend
361
-        restore_database_from_friend gogs $GIT_DOMAIN_NAME
362
-        if [ -d $SERVER_DIRECTORY/backup/gogs ]; then
363
-            if [ ! -d /home/$GOGS_USERNAME/custom ]; then
364
-                mkdir -p /home/$GOGS_USERNAME/custom
353
+        restore_database_from_friend gogs ${GIT_DOMAIN_NAME}
354
+        if [ -d ${SERVER_DIRECTORY}/backup/gogs ]; then
355
+            if [ ! -d /home/${GOGS_USERNAME}/custom ]; then
356
+                mkdir -p /home/${GOGS_USERNAME}/custom
365
             fi
357
             fi
366
-            cp -r /root/tempgogs/home/$GOGS_USERNAME/custom/* /home/$GOGS_USERNAME/custom/
358
+            cp -r /root/tempgogs/home/${GOGS_USERNAME}/custom/* /home/${GOGS_USERNAME}/custom/
367
             if [ ! "$?" = "0" ]; then
359
             if [ ! "$?" = "0" ]; then
368
                 exit 58852
360
                 exit 58852
369
             fi
361
             fi
370
             echo $"Restoring Gogs repos"
362
             echo $"Restoring Gogs repos"
371
             restore_directory_from_friend /root/tempgogsrepos gogsrepos
363
             restore_directory_from_friend /root/tempgogsrepos gogsrepos
372
-            cp -r /root/tempgogsrepos/home/$GOGS_USERNAME/gogs-repositories/* /home/$GOGS_USERNAME/gogs-repositories/
364
+            cp -r /root/tempgogsrepos/home/${GOGS_USERNAME}/gogs-repositories/* /home/${GOGS_USERNAME}/gogs-repositories/
373
             if [ ! "$?" = "0" ]; then
365
             if [ ! "$?" = "0" ]; then
374
                 exit 7649
366
                 exit 7649
375
             fi
367
             fi
376
             echo $"Restoring Gogs authorized_keys"
368
             echo $"Restoring Gogs authorized_keys"
377
             restore_directory_from_friend /root/tempgogsssh gogsssh
369
             restore_directory_from_friend /root/tempgogsssh gogsssh
378
-            if [ ! -d /home/$GOGS_USERNAME/.ssh ]; then
379
-                mkdir /home/$GOGS_USERNAME/.ssh
370
+            if [ ! -d /home/${GOGS_USERNAME}/.ssh ]; then
371
+                mkdir /home/${GOGS_USERNAME}/.ssh
380
             fi
372
             fi
381
-            cp -r /root/tempgogsssh/home/$GOGS_USERNAME/.ssh/* /home/$GOGS_USERNAME/.ssh/
373
+            cp -r /root/tempgogsssh/home/${GOGS_USERNAME}/.ssh/* /home/${GOGS_USERNAME}/.ssh/
382
             if [ ! "$?" = "0" ]; then
374
             if [ ! "$?" = "0" ]; then
383
                 exit 74239
375
                 exit 74239
384
             fi
376
             fi
385
             rm -rf /root/tempgogs
377
             rm -rf /root/tempgogs
386
             rm -rf /root/tempgogsrepos
378
             rm -rf /root/tempgogsrepos
387
             rm -rf /root/tempgogsssh
379
             rm -rf /root/tempgogsssh
388
-            chown -R $GOGS_USERNAME:$GOGS_USERNAME /home/$GOGS_USERNAME
380
+            chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
389
             echo $"Restore of Gogs complete"
381
             echo $"Restore of Gogs complete"
390
         fi
382
         fi
391
     fi
383
     fi
396
         return
388
         return
397
     fi
389
     fi
398
 
390
 
399
-    if grep -q "GIT_DOMAIN_NAME" $CONFIGURATION_FILE; then
400
-        GIT_DOMAIN_NAME=$(grep "GIT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
401
-    fi
402
     systemctl stop gogs
391
     systemctl stop gogs
403
     systemctl disable gogs
392
     systemctl disable gogs
404
-    nginx_dissite $GIT_DOMAIN_NAME
405
-    if [ -d /var/www/$GIT_DOMAIN_NAME ]; then
406
-        rm -rf /var/www/$GIT_DOMAIN_NAME
393
+    nginx_dissite ${GIT_DOMAIN_NAME}
394
+    if [ -d /var/www/${GIT_DOMAIN_NAME} ]; then
395
+        rm -rf /var/www/${GIT_DOMAIN_NAME}
407
     fi
396
     fi
408
-    if [ -f /etc/nginx/sites-available/$GIT_DOMAIN_NAME ]; then
409
-        rm /etc/nginx/sites-available/$GIT_DOMAIN_NAME
397
+    if [ -f /etc/nginx/sites-available/${GIT_DOMAIN_NAME} ]; then
398
+        rm /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
410
     fi
399
     fi
411
     function_check drop_database
400
     function_check drop_database
412
     drop_database gogs
401
     drop_database gogs
413
     rm /etc/systemd/system/gogs.service
402
     rm /etc/systemd/system/gogs.service
414
-    rm -rf /home/$GOGS_USERNAME/*
403
+    rm -rf /home/${GOGS_USERNAME}/*
415
     remove_onion_service gogs ${GIT_ONION_PORT} 9418
404
     remove_onion_service gogs ${GIT_ONION_PORT} 9418
416
     sed -i '/install_gogs/d' $COMPLETION_FILE
405
     sed -i '/install_gogs/d' $COMPLETION_FILE
417
-    sed -i '/Gogs /d' $COMPLETION_FILE
406
+    sed -i '/gogs /d' $COMPLETION_FILE
418
 }
407
 }
419
 
408
 
420
 function install_gogs {
409
 function install_gogs {
421
-    if [ ! $ONION_ONLY ]; then
422
-        ONION_ONLY='no'
423
-    fi
424
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
425
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
426
-    fi
427
-    if grep -q "GIT_DOMAIN_NAME" $CONFIGURATION_FILE; then
428
-        GIT_DOMAIN_NAME=$(grep "GIT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
429
-    fi
430
-    if grep -q "GIT_CODE" $CONFIGURATION_FILE; then
431
-        GIT_CODE=$(grep "GIT_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
432
-    fi
433
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
434
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
435
-    fi
436
-
437
     if [ ! $GIT_DOMAIN_NAME ]; then
410
     if [ ! $GIT_DOMAIN_NAME ]; then
438
         return
411
         return
439
     fi
412
     fi
466
     else
439
     else
467
         tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
440
         tar -xzf ${INSTALL_DIR}/${GOGS_FILE}
468
     fi
441
     fi
469
-    if [ ! -d $INSTALL_DIR/gogs ]; then
442
+    if [ ! -d ${INSTALL_DIR}/gogs ]; then
470
         exit 37823
443
         exit 37823
471
     fi
444
     fi
472
-    rm -rf /home/$GOGS_USERNAME/*
473
-    cp -r $INSTALL_DIR/gogs/* /home/$GOGS_USERNAME
445
+    rm -rf /home/${GOGS_USERNAME}/*
446
+    cp -r ${INSTALL_DIR}/gogs/* /home/${GOGS_USERNAME}
474
     if [ -f ${GOGS_FILE} ]; then
447
     if [ -f ${GOGS_FILE} ]; then
475
         rm ${GOGS_FILE}
448
         rm ${GOGS_FILE}
476
     fi
449
     fi
477
 
450
 
478
-    if [ ! -f /home/$GOGS_USERNAME/gogs ]; then
451
+    if [ ! -f /home/${GOGS_USERNAME}/gogs ]; then
479
         echo 'Gogs binary not installed'
452
         echo 'Gogs binary not installed'
480
         exit 345562
453
         exit 345562
481
     fi
454
     fi
482
 
455
 
483
-    echo "export GOROOT=/home/go" >> /home/$GOGS_USERNAME/.bashrc
484
-    echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> /home/$GOGS_USERNAME/.bashrc
485
-    echo 'export PATH=$PATH:$GOPATH' >> /home/$GOGS_USERNAME/.bashrc
486
-    chown -R $GOGS_USERNAME:$GOGS_USERNAME /home/$GOGS_USERNAME
456
+    echo "export GOROOT=/home/go" >> /home/${GOGS_USERNAME}/.bashrc
457
+    echo "export GOPATH=\$GOROOT/go${GO_VERSION}/bin" >> /home/${GOGS_USERNAME}/.bashrc
458
+    echo 'export PATH=$PATH:$GOPATH' >> /home/${GOGS_USERNAME}/.bashrc
459
+    chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
487
 
460
 
488
     function_check install_mariadb
461
     function_check install_mariadb
489
     install_mariadb
462
     install_mariadb
494
     function_check gogs_create_database
467
     function_check gogs_create_database
495
     gogs_create_database
468
     gogs_create_database
496
 
469
 
497
-    if [ ! -f /home/$GOGS_USERNAME/scripts/mysql.sql ]; then
470
+    if [ ! -f /home/${GOGS_USERNAME}/scripts/mysql.sql ]; then
498
         echo $'MySql template for Gogs was not found'
471
         echo $'MySql template for Gogs was not found'
499
         exit 72528
472
         exit 72528
500
     fi
473
     fi
501
 
474
 
502
-    if ! grep -q $"Gogs admin user password" /home/$MY_USERNAME/README; then
503
-        echo '' >> /home/$MY_USERNAME/README
504
-        echo '' >> /home/$MY_USERNAME/README
505
-        echo 'Gogs' >> /home/$MY_USERNAME/README
506
-        echo '====' >> /home/$MY_USERNAME/README
507
-        echo $'Install Steps For First-time Run:' >> /home/$MY_USERNAME/README
508
-        echo $'Leave email service settings empty' >> /home/$MY_USERNAME/README
509
-        echo $'Check "Enable Register Confirmation"' >> /home/$MY_USERNAME/README
510
-        echo $'Check "Enable Mail Notification"' >> /home/$MY_USERNAME/README
511
-        echo '' >> /home/$MY_USERNAME/README
512
-        echo $'If you want to disable new account registrations then append the following:' >> /home/$MY_USERNAME/README
513
-        echo '  [service]' >> /home/$MY_USERNAME/README
514
-        echo '  DISABLE_REGISTRATION = true' >> /home/$MY_USERNAME/README
515
-        echo $'Then restart with:' >> /home/$MY_USERNAME/README
516
-        echo '  systemctl restart gogs' >> /home/$MY_USERNAME/README
517
-        echo '' >> /home/$MY_USERNAME/README
518
-        echo $"Note that there's a usability/security trade-off made here." >> /home/$MY_USERNAME/README
519
-        echo $"In order to allow git clone via http we don't redirect everything" >> /home/$MY_USERNAME/README
520
-        echo $'over https. Instead only critical things such as user login,' >> /home/$MY_USERNAME/README
521
-        echo $'settings and admin are encrypted.' >> /home/$MY_USERNAME/README
522
-        echo $'There are also potential security issues with cloning/pulling/pushing' >> /home/$MY_USERNAME/README
523
-        echo $'code over http, since a determined adversary could inject malware' >> /home/$MY_USERNAME/README
524
-        echo $'into the stream as it passes, so beware.' >> /home/$MY_USERNAME/README
525
-        echo $'If you have a bought domain and a non-self signed cert then you' >> /home/$MY_USERNAME/README
526
-        echo $"should change /etc/nginx/sites-available/$GIT_DOMAIN_NAME to redirect everything over https." >> /home/$MY_USERNAME/README
527
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
528
-        chmod 600 /home/$MY_USERNAME/README
475
+    if ! grep -q $"Gogs admin user password" /home/${MY_USERNAME}/README; then
476
+        echo '' >> /home/${MY_USERNAME}/README
477
+        echo '' >> /home/${MY_USERNAME}/README
478
+        echo 'Gogs' >> /home/${MY_USERNAME}/README
479
+        echo '====' >> /home/${MY_USERNAME}/README
480
+        echo $'Install Steps For First-time Run:' >> /home/${MY_USERNAME}/README
481
+        echo $'Leave email service settings empty' >> /home/${MY_USERNAME}/README
482
+        echo $'Check "Enable Register Confirmation"' >> /home/${MY_USERNAME}/README
483
+        echo $'Check "Enable Mail Notification"' >> /home/${MY_USERNAME}/README
484
+        echo '' >> /home/${MY_USERNAME}/README
485
+        echo $'If you want to disable new account registrations then append the following:' >> /home/${MY_USERNAME}/README
486
+        echo '  [service]' >> /home/${MY_USERNAME}/README
487
+        echo '  DISABLE_REGISTRATION = true' >> /home/${MY_USERNAME}/README
488
+        echo $'Then restart with:' >> /home/${MY_USERNAME}/README
489
+        echo '  systemctl restart gogs' >> /home/${MY_USERNAME}/README
490
+        echo '' >> /home/${MY_USERNAME}/README
491
+        echo $"Note that there's a usability/security trade-off made here." >> /home/${MY_USERNAME}/README
492
+        echo $"In order to allow git clone via http we don't redirect everything" >> /home/${MY_USERNAME}/README
493
+        echo $'over https. Instead only critical things such as user login,' >> /home/${MY_USERNAME}/README
494
+        echo $'settings and admin are encrypted.' >> /home/${MY_USERNAME}/README
495
+        echo $'There are also potential security issues with cloning/pulling/pushing' >> /home/${MY_USERNAME}/README
496
+        echo $'code over http, since a determined adversary could inject malware' >> /home/${MY_USERNAME}/README
497
+        echo $'into the stream as it passes, so beware.' >> /home/${MY_USERNAME}/README
498
+        echo $'If you have a bought domain and a non-self signed cert then you' >> /home/${MY_USERNAME}/README
499
+        echo $"should change /etc/nginx/sites-available/${GIT_DOMAIN_NAME} to redirect everything over https." >> /home/${MY_USERNAME}/README
500
+        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
501
+        chmod 600 /home/${MY_USERNAME}/README
529
     fi
502
     fi
530
 
503
 
531
     function_check initialise_database
504
     function_check initialise_database
532
-    initialise_database gogs /home/$GOGS_USERNAME/scripts/mysql.sql
505
+    initialise_database gogs /home/${GOGS_USERNAME}/scripts/mysql.sql
533
 
506
 
534
-    chown -R $GOGS_USERNAME:$GOGS_USERNAME /home/$GOGS_USERNAME
507
+    chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
535
 
508
 
536
     echo '[Unit]' > /etc/systemd/system/gogs.service
509
     echo '[Unit]' > /etc/systemd/system/gogs.service
537
     echo 'Description=Gogs (Go Git Service)' >> /etc/systemd/system/gogs.service
510
     echo 'Description=Gogs (Go Git Service)' >> /etc/systemd/system/gogs.service
545
     echo 'Type=simple' >> /etc/systemd/system/gogs.service
518
     echo 'Type=simple' >> /etc/systemd/system/gogs.service
546
     echo 'User=gogs' >> /etc/systemd/system/gogs.service
519
     echo 'User=gogs' >> /etc/systemd/system/gogs.service
547
     echo 'Group=gogs' >> /etc/systemd/system/gogs.service
520
     echo 'Group=gogs' >> /etc/systemd/system/gogs.service
548
-    echo "WorkingDirectory=/home/$GOGS_USERNAME" >> /etc/systemd/system/gogs.service
549
-    echo "ExecStart=/home/$GOGS_USERNAME/gogs web" >> /etc/systemd/system/gogs.service
521
+    echo "WorkingDirectory=/home/${GOGS_USERNAME}" >> /etc/systemd/system/gogs.service
522
+    echo "ExecStart=/home/${GOGS_USERNAME}/gogs web" >> /etc/systemd/system/gogs.service
550
     echo 'Restart=always' >> /etc/systemd/system/gogs.service
523
     echo 'Restart=always' >> /etc/systemd/system/gogs.service
551
     echo 'RestartSec=10' >> /etc/systemd/system/gogs.service
524
     echo 'RestartSec=10' >> /etc/systemd/system/gogs.service
552
-    echo "Environment=\"USER=$GOGS_USERNAME\" \"HOME=/home/$GOGS_USERNAME\" \"GOPATH=/home/go/go${GO_VERSION}\"" >> /etc/systemd/system/gogs.service
525
+    echo "Environment=\"USER=${GOGS_USERNAME}\" \"HOME=/home/${GOGS_USERNAME}\" \"GOPATH=/home/go/go${GO_VERSION}\"" >> /etc/systemd/system/gogs.service
553
     echo '' >> /etc/systemd/system/gogs.service
526
     echo '' >> /etc/systemd/system/gogs.service
554
     echo '[Install]' >> /etc/systemd/system/gogs.service
527
     echo '[Install]' >> /etc/systemd/system/gogs.service
555
     echo 'WantedBy=multi-user.target' >> /etc/systemd/system/gogs.service
528
     echo 'WantedBy=multi-user.target' >> /etc/systemd/system/gogs.service
558
     systemctl daemon-reload
531
     systemctl daemon-reload
559
     systemctl start gogs
532
     systemctl start gogs
560
 
533
 
561
-    if [ ! -d /var/www/$GIT_DOMAIN_NAME ]; then
562
-        mkdir /var/www/$GIT_DOMAIN_NAME
534
+    if [ ! -d /var/www/${GIT_DOMAIN_NAME} ]; then
535
+        mkdir /var/www/${GIT_DOMAIN_NAME}
563
     fi
536
     fi
564
-    if [ -d /var/www/$GIT_DOMAIN_NAME/htdocs ]; then
565
-        rm -rf /var/www/$GIT_DOMAIN_NAME/htdocs
537
+    if [ -d /var/www/${GIT_DOMAIN_NAME}/htdocs ]; then
538
+        rm -rf /var/www/${GIT_DOMAIN_NAME}/htdocs
566
     fi
539
     fi
567
 
540
 
568
-    if [[ $ONION_ONLY == "no" ]]; then
541
+    if [[ ${ONION_ONLY} == "no" ]]; then
569
         function_check nginx_http_redirect
542
         function_check nginx_http_redirect
570
-        nginx_http_redirect $GIT_DOMAIN_NAME
571
-        echo 'server {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
572
-        echo '    listen 443 ssl;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
573
-        echo "    root /var/www/$GIT_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
574
-        echo "    server_name $GIT_DOMAIN_NAME;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
575
-        echo '    access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
576
-        echo "    error_log /var/log/nginx/${GIT_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
577
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
543
+        nginx_http_redirect ${GIT_DOMAIN_NAME}
544
+        echo 'server {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
545
+        echo '    listen 443 ssl;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
546
+        echo "    root /var/www/${GIT_DOMAIN_NAME}/htdocs;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
547
+        echo "    server_name ${GIT_DOMAIN_NAME};" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
548
+        echo '    access_log off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
549
+        echo "    error_log /var/log/nginx/${GIT_DOMAIN_NAME}_error.log ${WEBSERVER_LOG_LEVEL};" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
550
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
578
         function_check nginx_ssl
551
         function_check nginx_ssl
579
-        nginx_ssl $GIT_DOMAIN_NAME
552
+        nginx_ssl ${GIT_DOMAIN_NAME}
580
         function_check nginx_disable_sniffing
553
         function_check nginx_disable_sniffing
581
-        nginx_disable_sniffing $GIT_DOMAIN_NAME
582
-        echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
583
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
584
-        echo '    location / {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
554
+        nginx_disable_sniffing ${GIT_DOMAIN_NAME}
555
+        echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
556
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
557
+        echo '    location / {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
585
         function_check nginx_limits
558
         function_check nginx_limits
586
-        nginx_limits $GIT_DOMAIN_NAME '10G'
587
-        echo '        proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
588
-        echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
589
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
590
-        echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
591
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
592
-        echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
593
-        echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
594
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
595
-        echo '    location = /robots.txt {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
596
-        echo '        allow all;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
597
-        echo '        log_not_found off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
598
-        echo '        access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
599
-        echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
600
-        echo '}' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
601
-        echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
559
+        nginx_limits ${GIT_DOMAIN_NAME} '10G'
560
+        echo '        proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
561
+        echo '    }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
562
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
563
+        echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
564
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
565
+        echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
566
+        echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
567
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
568
+        echo '    location = /robots.txt {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
569
+        echo '        allow all;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
570
+        echo '        log_not_found off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
571
+        echo '        access_log off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
572
+        echo '    }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
573
+        echo '}' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
574
+        echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
602
     else
575
     else
603
-        echo -n '' > /etc/nginx/sites-available/$GIT_DOMAIN_NAME
604
-    fi
605
-    echo 'server {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
606
-    echo "    listen 127.0.0.1:${GIT_ONION_PORT} default_server;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
607
-    echo "    root /var/www/$GIT_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
608
-    echo "    server_name $GIT_DOMAIN_NAME;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
609
-    echo '    access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
610
-    echo "    error_log /var/log/nginx/${GIT_DOMAIN_NAME}_error.log $WEBSERVER_LOG_LEVEL;" >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
611
-    echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
576
+        echo -n '' > /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
577
+    fi
578
+    echo 'server {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
579
+    echo "    listen 127.0.0.1:${GIT_ONION_PORT} default_server;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
580
+    echo "    root /var/www/$GIT_DOMAIN_NAME/htdocs;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
581
+    echo "    server_name $GIT_DOMAIN_NAME;" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
582
+    echo '    access_log off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
583
+    echo "    error_log /var/log/nginx/${GIT_DOMAIN_NAME}_error.log ${WEBSERVER_LOG_LEVEL};" >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
584
+    echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
612
     function_check nginx_disable_sniffing
585
     function_check nginx_disable_sniffing
613
-    nginx_disable_sniffing $GIT_DOMAIN_NAME
614
-    echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
615
-    echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
616
-    echo '    location / {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
586
+    nginx_disable_sniffing ${GIT_DOMAIN_NAME}
587
+    echo '    add_header Strict-Transport-Security max-age=0;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
588
+    echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
589
+    echo '    location / {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
617
     function_check nginx_limits
590
     function_check nginx_limits
618
-    nginx_limits $GIT_DOMAIN_NAME '10G'
619
-    echo '        proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
620
-    echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
621
-    echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
622
-    echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
623
-    echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
624
-    echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
625
-    echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
626
-    echo '' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
627
-    echo '    location = /robots.txt {' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
628
-    echo '        allow all;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
629
-    echo '        log_not_found off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
630
-    echo '        access_log off;' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
631
-    echo '    }' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
632
-    echo '}' >> /etc/nginx/sites-available/$GIT_DOMAIN_NAME
591
+    nginx_limits ${GIT_DOMAIN_NAME} '10G'
592
+    echo '        proxy_pass http://localhost:3000;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
593
+    echo '    }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
594
+    echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
595
+    echo '    fastcgi_buffers 64 4K;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
596
+    echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
597
+    echo '    error_page 403 /core/templates/403.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
598
+    echo '    error_page 404 /core/templates/404.php;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
599
+    echo '' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
600
+    echo '    location = /robots.txt {' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
601
+    echo '        allow all;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
602
+    echo '        log_not_found off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
603
+    echo '        access_log off;' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
604
+    echo '    }' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
605
+    echo '}' >> /etc/nginx/sites-available/${GIT_DOMAIN_NAME}
633
 
606
 
634
     function_check configure_php
607
     function_check configure_php
635
     configure_php
608
     configure_php
636
 
609
 
637
     function_check create_site_certificate
610
     function_check create_site_certificate
638
-    create_site_certificate $GIT_DOMAIN_NAME 'yes'
611
+    create_site_certificate ${GIT_DOMAIN_NAME} 'yes'
639
 
612
 
640
-    nginx_ensite $GIT_DOMAIN_NAME
613
+    nginx_ensite ${GIT_DOMAIN_NAME}
641
 
614
 
642
     if [ ! -d /var/lib/tor ]; then
615
     if [ ! -d /var/lib/tor ]; then
643
         echo $'No Tor installation found. Gogs onion site cannot be configured.'
616
         echo $'No Tor installation found. Gogs onion site cannot be configured.'
660
     systemctl restart php5-fpm
633
     systemctl restart php5-fpm
661
     systemctl restart nginx
634
     systemctl restart nginx
662
 
635
 
663
-    if ! grep -q "Gogs onion domain" /home/$MY_USERNAME/README; then
664
-        echo "Gogs onion domain: ${GIT_ONION_HOSTNAME}" >> /home/$MY_USERNAME/README
665
-        echo '' >> /home/$MY_USERNAME/README
666
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
667
-        chmod 600 /home/$MY_USERNAME/README
636
+    if ! grep -q "Gogs onion domain" /home/${MY_USERNAME}/README; then
637
+        echo "Gogs onion domain: ${GIT_ONION_HOSTNAME}" >> /home/${MY_USERNAME}/README
638
+        echo '' >> /home/${MY_USERNAME}/README
639
+        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
640
+        chmod 600 /home/${MY_USERNAME}/README
668
     fi
641
     fi
669
 
642
 
670
-    if ! grep -q "gogs onion domain" $COMPLETION_FILE; then
671
-        echo "gogs onion domain:${GIT_ONION_HOSTNAME}" >> $COMPLETION_FILE
643
+    if ! grep -q "gogs onion domain" ${COMPLETION_FILE}; then
644
+        echo "gogs onion domain:${GIT_ONION_HOSTNAME}" >> ${COMPLETION_FILE}
672
     else
645
     else
673
-        sed -i "s|gogs onion domain.*|gogs onion domain:${GIT_ONION_HOSTNAME}|g" $COMPLETION_FILE
646
+        sed -i "s|gogs onion domain.*|gogs onion domain:${GIT_ONION_HOSTNAME}|g" ${COMPLETION_FILE}
674
     fi
647
     fi
675
 
648
 
676
     function_check add_ddns_domain
649
     function_check add_ddns_domain
677
-    add_ddns_domain $GIT_DOMAIN_NAME
650
+    add_ddns_domain ${GIT_DOMAIN_NAME}
678
 
651
 
679
     # obtain the secret key
652
     # obtain the secret key
680
     GOGS_SECRET_KEY=
653
     GOGS_SECRET_KEY=
681
-    if grep -q "Gogs secret key:" /home/$MY_USERNAME/README; then
682
-        GOGS_SECRET_KEY=$(cat /home/$MY_USERNAME/README | grep "Gogs secret key:" | awk -F ':' '{print $2}' | sed 's/^ *//')
654
+    if grep -q "Gogs secret key:" /home/${MY_USERNAME}/README; then
655
+        GOGS_SECRET_KEY=$(cat /home/${MY_USERNAME}/README | grep "Gogs secret key:" | awk -F ':' '{print $2}' | sed 's/^ *//')
683
     else
656
     else
684
         GOGS_SECRET_KEY="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
657
         GOGS_SECRET_KEY="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
685
-        echo "Gogs secret key:$GOGS_SECRET_KEY" >> /home/$MY_USERNAME/README
686
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
658
+        echo "Gogs secret key:${GOGS_SECRET_KEY}" >> /home/${MY_USERNAME}/README
659
+        chown $MY_USERNAME:$MY_USERNAME /home/${MY_USERNAME}/README
687
     fi
660
     fi
688
 
661
 
689
     # create the configuration
662
     # create the configuration
690
-    GOGS_CONFIG_PATH=/home/$GOGS_USERNAME/custom/conf
691
-    if [ ! -d $GOGS_CONFIG_PATH ]; then
692
-        mkdir -p $GOGS_CONFIG_PATH
693
-    fi
694
-    GOGS_CONFIG_FILE=$GOGS_CONFIG_PATH/app.ini
695
-    echo "RUN_USER = $GOGS_USERNAME" > $GOGS_CONFIG_FILE
696
-    echo 'RUN_MODE = prod' >> $GOGS_CONFIG_FILE
697
-    echo '' >> $GOGS_CONFIG_FILE
698
-    echo '[database]' >> $GOGS_CONFIG_FILE
699
-    echo 'DB_TYPE = mysql' >> $GOGS_CONFIG_FILE
700
-    echo 'HOST = 127.0.0.1:3306' >> $GOGS_CONFIG_FILE
701
-    echo 'NAME = gogs' >> $GOGS_CONFIG_FILE
702
-    echo 'USER = root' >> $GOGS_CONFIG_FILE
703
-    echo "PASSWD = $MARIADB_PASSWORD" >> $GOGS_CONFIG_FILE
704
-    echo 'SSL_MODE = disable' >> $GOGS_CONFIG_FILE
705
-    echo 'PATH = data/gogs.db' >> $GOGS_CONFIG_FILE
706
-    echo '' >> $GOGS_CONFIG_FILE
707
-    echo '[repository]' >> $GOGS_CONFIG_FILE
708
-    echo "ROOT = /home/$GOGS_USERNAME/gogs-repositories" >> $GOGS_CONFIG_FILE
709
-    echo '' >> $GOGS_CONFIG_FILE
710
-    echo '[server]' >> $GOGS_CONFIG_FILE
711
-    if [[ $ONION_ONLY == 'no' ]]; then
712
-        echo "DOMAIN = ${GIT_DOMAIN_NAME}" >> $GOGS_CONFIG_FILE
663
+    GOGS_CONFIG_PATH=/home/${GOGS_USERNAME}/custom/conf
664
+    if [ ! -d ${GOGS_CONFIG_PATH} ]; then
665
+        mkdir -p ${GOGS_CONFIG_PATH}
666
+    fi
667
+    GOGS_CONFIG_FILE=${GOGS_CONFIG_PATH}/app.ini
668
+    echo "RUN_USER = $GOGS_USERNAME" > ${GOGS_CONFIG_FILE}
669
+    echo 'RUN_MODE = prod' >> ${GOGS_CONFIG_FILE}
670
+    echo '' >> ${GOGS_CONFIG_FILE}
671
+    echo '[database]' >> ${GOGS_CONFIG_FILE}
672
+    echo 'DB_TYPE = mysql' >> ${GOGS_CONFIG_FILE}
673
+    echo 'HOST = 127.0.0.1:3306' >> ${GOGS_CONFIG_FILE}
674
+    echo 'NAME = gogs' >> ${GOGS_CONFIG_FILE}
675
+    echo 'USER = root' >> ${GOGS_CONFIG_FILE}
676
+    echo "PASSWD = $MARIADB_PASSWORD" >> ${GOGS_CONFIG_FILE}
677
+    echo 'SSL_MODE = disable' >> ${GOGS_CONFIG_FILE}
678
+    echo 'PATH = data/gogs.db' >> ${GOGS_CONFIG_FILE}
679
+    echo '' >> ${GOGS_CONFIG_FILE}
680
+    echo '[repository]' >> ${GOGS_CONFIG_FILE}
681
+    echo "ROOT = /home/$GOGS_USERNAME/gogs-repositories" >> ${GOGS_CONFIG_FILE}
682
+    echo '' >> ${GOGS_CONFIG_FILE}
683
+    echo '[server]' >> ${GOGS_CONFIG_FILE}
684
+    if [[ ${ONION_ONLY} == 'no' ]]; then
685
+        echo "DOMAIN = ${GIT_DOMAIN_NAME}" >> ${GOGS_CONFIG_FILE}
713
     else
686
     else
714
-        echo "DOMAIN = ${GIT_ONION_HOSTNAME}" >> $GOGS_CONFIG_FILE
715
-    fi
716
-    echo 'HTTP_PORT = 3000' >> $GOGS_CONFIG_FILE
717
-    echo "ROOT_URL = http://$GIT_DOMAIN_NAME/" >> $GOGS_CONFIG_FILE
718
-    echo "SSH_PORT = $SSH_PORT" >> $GOGS_CONFIG_FILE
719
-    echo 'SSH_DOMAIN = %(DOMAIN)s' >> $GOGS_CONFIG_FILE
720
-    echo "CERT_FILE = /etc/ssl/certs/${GIT_DOMAIN_NAME}.pem" >> $GOGS_CONFIG_FILE
721
-    echo "KEY_FILE = /etc/ssl/private/${GIT_DOMAIN_NAME}.key" >> $GOGS_CONFIG_FILE
722
-    echo 'DISABLE_ROUTER_LOG = true' >> $GOGS_CONFIG_FILE
723
-    echo '' >> $GOGS_CONFIG_FILE
724
-    echo '[session]' >> $GOGS_CONFIG_FILE
725
-    echo 'PROVIDER = file' >> $GOGS_CONFIG_FILE
726
-    echo '' >> $GOGS_CONFIG_FILE
727
-    echo '[log]' >> $GOGS_CONFIG_FILE
728
-    echo 'MODE = file' >> $GOGS_CONFIG_FILE
729
-    echo 'LEVEL = Info' >> $GOGS_CONFIG_FILE
730
-    echo '' >> $GOGS_CONFIG_FILE
731
-    echo '[security]' >> $GOGS_CONFIG_FILE
732
-    echo 'INSTALL_LOCK = true' >> $GOGS_CONFIG_FILE
733
-    echo "SECRET_KEY = $GOGS_SECRET_KEY" >> $GOGS_CONFIG_FILE
734
-    echo '' >> $GOGS_CONFIG_FILE
735
-    echo '[service]' >> $GOGS_CONFIG_FILE
736
-    echo 'DISABLE_REGISTRATION = false' >> $GOGS_CONFIG_FILE
737
-    echo 'SHOW_REGISTRATION_BUTTON = true' >> $GOGS_CONFIG_FILE
738
-    echo 'REQUIRE_SIGNIN_VIEW = false' >> $GOGS_CONFIG_FILE
739
-    echo 'ENABLE_CAPTCHA = false' >> $GOGS_CONFIG_FILE
740
-    echo '' >> $GOGS_CONFIG_FILE
741
-    echo '[other]' >> $GOGS_CONFIG_FILE
742
-    echo 'SHOW_FOOTER_BRANDING = false' >> $GOGS_CONFIG_FILE
743
-    echo 'SHOW_FOOTER_VERSION = false' >> $GOGS_CONFIG_FILE
744
-
745
-    chmod 750 $GOGS_CONFIG_FILE
746
-    chown -R $GOGS_USERNAME:$GOGS_USERNAME /home/$GOGS_USERNAME
687
+        echo "DOMAIN = ${GIT_ONION_HOSTNAME}" >> ${GOGS_CONFIG_FILE}
688
+    fi
689
+    echo 'HTTP_PORT = 3000' >> ${GOGS_CONFIG_FILE}
690
+    echo "ROOT_URL = http://$GIT_DOMAIN_NAME/" >> ${GOGS_CONFIG_FILE}
691
+    echo "SSH_PORT = $SSH_PORT" >> ${GOGS_CONFIG_FILE}
692
+    echo 'SSH_DOMAIN = %(DOMAIN)s' >> ${GOGS_CONFIG_FILE}
693
+    echo "CERT_FILE = /etc/ssl/certs/${GIT_DOMAIN_NAME}.pem" >> ${GOGS_CONFIG_FILE}
694
+    echo "KEY_FILE = /etc/ssl/private/${GIT_DOMAIN_NAME}.key" >> ${GOGS_CONFIG_FILE}
695
+    echo 'DISABLE_ROUTER_LOG = true' >> ${GOGS_CONFIG_FILE}
696
+    echo '' >> ${GOGS_CONFIG_FILE}
697
+    echo '[session]' >> ${GOGS_CONFIG_FILE}
698
+    echo 'PROVIDER = file' >> ${GOGS_CONFIG_FILE}
699
+    echo '' >> ${GOGS_CONFIG_FILE}
700
+    echo '[log]' >> ${GOGS_CONFIG_FILE}
701
+    echo 'MODE = file' >> ${GOGS_CONFIG_FILE}
702
+    echo 'LEVEL = Info' >> ${GOGS_CONFIG_FILE}
703
+    echo '' >> ${GOGS_CONFIG_FILE}
704
+    echo '[security]' >> ${GOGS_CONFIG_FILE}
705
+    echo 'INSTALL_LOCK = true' >> ${GOGS_CONFIG_FILE}
706
+    echo "SECRET_KEY = $GOGS_SECRET_KEY" >> ${GOGS_CONFIG_FILE}
707
+    echo '' >> ${GOGS_CONFIG_FILE}
708
+    echo '[service]' >> ${GOGS_CONFIG_FILE}
709
+    echo 'DISABLE_REGISTRATION = false' >> ${GOGS_CONFIG_FILE}
710
+    echo 'SHOW_REGISTRATION_BUTTON = true' >> ${GOGS_CONFIG_FILE}
711
+    echo 'REQUIRE_SIGNIN_VIEW = false' >> ${GOGS_CONFIG_FILE}
712
+    echo 'ENABLE_CAPTCHA = false' >> ${GOGS_CONFIG_FILE}
713
+    echo '' >> ${GOGS_CONFIG_FILE}
714
+    echo '[other]' >> ${GOGS_CONFIG_FILE}
715
+    echo 'SHOW_FOOTER_BRANDING = false' >> ${GOGS_CONFIG_FILE}
716
+    echo 'SHOW_FOOTER_VERSION = false' >> ${GOGS_CONFIG_FILE}
717
+
718
+    chmod 750 ${GOGS_CONFIG_FILE}
719
+    chown -R ${GOGS_USERNAME}:${GOGS_USERNAME} /home/${GOGS_USERNAME}
747
 
720
 
748
     systemctl restart gogs
721
     systemctl restart gogs
749
 
722
 
750
-    if ! grep -q "gogs domain:" $COMPLETION_FILE; then
751
-        echo "gogs domain:$GIT_DOMAIN_NAME" >> $COMPLETION_FILE
723
+    if ! grep -q "gogs domain:" ${COMPLETION_FILE}; then
724
+        echo "gogs domain:${GIT_DOMAIN_NAME}" >> ${COMPLETION_FILE}
752
     else
725
     else
753
-        sed -i "s|gogs domain.*|gogs domain:$GIT_DOMAIN_NAME|g" $COMPLETION_FILE
726
+        sed -i "s|gogs domain.*|gogs domain:${GIT_DOMAIN_NAME}|g" ${COMPLETION_FILE}
754
     fi
727
     fi
755
 
728
 
756
     function_check configure_firewall_for_git
729
     function_check configure_firewall_for_git
757
     configure_firewall_for_git
730
     configure_firewall_for_git
758
-    if ! grep -q "gogs version:" $COMPLETION_FILE; then
759
-        echo "gogs version:$GOGS_VERSION" >> $COMPLETION_FILE
731
+    if ! grep -q "gogs version:" ${COMPLETION_FILE}; then
732
+        echo "gogs version:${GOGS_VERSION}" >> ${COMPLETION_FILE}
760
     else
733
     else
761
-        sed -i "s|gogs version.*|gogs version:$GOGS_VERSION|g" $COMPLETION_FILE
734
+        sed -i "s|gogs version.*|gogs version:${GOGS_VERSION}|g" ${COMPLETION_FILE}
762
     fi
735
     fi
763
 }
736
 }
764
 
737
 

+ 55
- 103
src/freedombone-app-hubzilla 查看文件

40
 HUBZILLA_COMMIT='8aee932525d0bc341713fe7052e2a5ab318a69c0'
40
 HUBZILLA_COMMIT='8aee932525d0bc341713fe7052e2a5ab318a69c0'
41
 HUBZILLA_ADDONS_COMMIT='4456f097e3faf2adeab696ad08e3f213e82199bd'
41
 HUBZILLA_ADDONS_COMMIT='4456f097e3faf2adeab696ad08e3f213e82199bd'
42
 
42
 
43
+hubzilla_variables=(ONION_ONLY
44
+                    HUBZILLA_DOMAIN_NAME
45
+                    HUBZILLA_CODE
46
+                    DDNS_PROVIDER
47
+                    MY_USERNAME
48
+                    HUBZILLA_REPO
49
+                    HUBZILLA_COMMIT
50
+                    HUBZILLA_ADDONS_REPO
51
+                    HUBZILLA_ADDONS_COMMIT)
52
+
43
 function hubzilla_renew_cert {
53
 function hubzilla_renew_cert {
44
     dialog --title $"Renew SSL certificate" \
54
     dialog --title $"Renew SSL certificate" \
45
            --backtitle $"Freedombone Control Panel" \
55
            --backtitle $"Freedombone Control Panel" \
126
 }
136
 }
127
 
137
 
128
 function install_interactive_hubzilla {
138
 function install_interactive_hubzilla {
129
-    if [ ! $ONION_ONLY ]; then
130
-        ONION_ONLY='no'
131
-    fi
132
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
133
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
134
-    fi
135
-    if grep -q "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE; then
136
-        HUBZILLA_DOMAIN_NAME=$(grep "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
137
-    fi
138
-    if grep -q "HUBZILLA_CODE" $CONFIGURATION_FILE; then
139
-        HUBZILLA_CODE=$(grep "HUBZILLA_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
140
-    fi
141
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
142
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
143
-    fi
144
     if [[ $ONION_ONLY != "no" ]]; then
139
     if [[ $ONION_ONLY != "no" ]]; then
145
         HUBZILLA_DOMAIN_NAME='hubzilla.local'
140
         HUBZILLA_DOMAIN_NAME='hubzilla.local'
146
     else
141
     else
250
 }
245
 }
251
 
246
 
252
 function upgrade_hubzilla {
247
 function upgrade_hubzilla {
253
-    if grep -q "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE; then
254
-        HUBZILLA_DOMAIN_NAME=$(grep "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
255
-    fi
256
-
257
     HUBZILLA_PATH=/var/www/$HUBZILLA_DOMAIN_NAME/htdocs
248
     HUBZILLA_PATH=/var/www/$HUBZILLA_DOMAIN_NAME/htdocs
258
 
249
 
259
     function_check set_repo_commit
250
     function_check set_repo_commit
269
 }
260
 }
270
 
261
 
271
 function backup_local_hubzilla {
262
 function backup_local_hubzilla {
272
-    if grep -q "hubzilla domain" $COMPLETION_FILE; then
273
-        HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
274
-        hubzilla_path=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
275
-        if [ -d $hubzilla_path ]; then
276
-            echo $"Backing up Hubzilla"
277
-            function_check backup_database_to_usb
278
-            backup_database_to_usb hubzilla
279
-
280
-            backup_directory_to_usb $hubzilla_path hubzilla
263
+    hubzilla_path=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
264
+    if [ -d $hubzilla_path ]; then
265
+        function_check backup_database_to_usb
266
+        backup_database_to_usb hubzilla
281
 
267
 
282
-            echo $"Hubzilla backup complete"
283
-        fi
268
+        backup_directory_to_usb $hubzilla_path hubzilla
284
     fi
269
     fi
285
 }
270
 }
286
 
271
 
287
 function restore_local_hubzilla {
272
 function restore_local_hubzilla {
288
-    if ! grep -q "hubzilla domain" $COMPLETION_FILE; then
289
-        return
290
-    fi
291
-    HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
292
-    if [ $HUBZILLA_DOMAIN_NAME ]; then
293
-        echo $"Restoring Hubzilla"
294
-        temp_restore_dir=/root/temphubzilla
295
-        hubzilla_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
296
-
297
-        function_check hubzilla_create_database
298
-        hubzilla_create_database
299
-
300
-        restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
301
-        if [ -d $USB_MOUNT/backup/hubzilla ]; then
302
-            if [ ! -d $hubzilla_dir/store/[data]/smarty3 ]; then
303
-                mkdir -p $hubzilla_dir/store/[data]/smarty3
304
-            fi
305
-            chmod 777 $hubzilla_dir/store/[data]/smarty3
306
-            chown -R www-data:www-data $hubzilla_dir/*
307
-            if [ -d $temp_restore_dir ]; then
308
-                rm -rf $temp_restore_dir
309
-            fi
273
+    temp_restore_dir=/root/temphubzilla
274
+    hubzilla_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
275
+
276
+    function_check hubzilla_create_database
277
+    hubzilla_create_database
278
+
279
+    restore_database hubzilla ${HUBZILLA_DOMAIN_NAME}
280
+    if [ -d $USB_MOUNT/backup/hubzilla ]; then
281
+        if [ ! -d $hubzilla_dir/store/[data]/smarty3 ]; then
282
+            mkdir -p $hubzilla_dir/store/[data]/smarty3
283
+        fi
284
+        chmod 777 $hubzilla_dir/store/[data]/smarty3
285
+        chown -R www-data:www-data $hubzilla_dir/*
286
+        if [ -d $temp_restore_dir ]; then
287
+            rm -rf $temp_restore_dir
310
         fi
288
         fi
311
-        echo $"Restore of Hubzilla complete"
312
     fi
289
     fi
313
 }
290
 }
314
 
291
 
315
 function backup_remote_hubzilla {
292
 function backup_remote_hubzilla {
316
-    if grep -q "hubzilla domain" $COMPLETION_FILE; then
317
-        HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
318
-        temp_backup_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
319
-        if [ -d $temp_backup_dir ]; then
320
-            suspend_site ${HUBZILLA_DOMAIN_NAME}
321
-            backup_database_to_friend hubzilla
322
-            echo "Backing up Hubzilla installation"
323
-            backup_directory_to_friend $temp_backup_dir hubzilla
324
-            restart_site
325
-            echo "Backup of Hubzilla complete"
326
-        else
327
-            echo $"Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}"
328
-            exit 2578
329
-        fi
293
+    temp_backup_dir=/var/www/${HUBZILLA_DOMAIN_NAME}/htdocs
294
+    if [ -d $temp_backup_dir ]; then
295
+        suspend_site ${HUBZILLA_DOMAIN_NAME}
296
+        backup_database_to_friend hubzilla
297
+        echo "Backing up Hubzilla installation"
298
+        backup_directory_to_friend $temp_backup_dir hubzilla
299
+        restart_site
300
+        echo "Backup of Hubzilla complete"
301
+    else
302
+        echo $"Hubzilla domain specified but not found in /var/www/${HUBZILLA_DOMAIN_NAME}"
303
+        exit 2578
330
     fi
304
     fi
331
 }
305
 }
332
 
306
 
333
 function restore_remote_hubzilla {
307
 function restore_remote_hubzilla {
334
-    if grep -q "hubzilla domain" $COMPLETION_FILE; then
335
-        echo $"Restoring Hubzilla"
336
-        HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
337
-        function_check restore_database_from_friend
338
-
339
-        function_check hubzilla_create_database
340
-        hubzilla_create_database
341
-
342
-        restore_database_from_friend hubzilla ${HUBZILLA_DOMAIN_NAME}
343
-        if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then
344
-            if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
345
-                mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
346
-            fi
347
-            chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
348
-            chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
349
-        fi
350
-        if [ -d /root/temphubzilla ]; then
351
-            rm -rf /root/temphubzilla
308
+    function_check restore_database_from_friend
309
+
310
+    function_check hubzilla_create_database
311
+    hubzilla_create_database
312
+
313
+    restore_database_from_friend hubzilla ${HUBZILLA_DOMAIN_NAME}
314
+    if [ -d $SERVER_DIRECTORY/backup/hubzilla ]; then
315
+        if [ ! -d /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3 ]; then
316
+            mkdir -p /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
352
         fi
317
         fi
353
-        echo $"Restore of Hubzilla complete"
318
+        chmod 777 /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/store/[data]/smarty3
319
+        chown -R www-data:www-data /var/www/${HUBZILLA_DOMAIN_NAME}/htdocs/*
320
+    fi
321
+    if [ -d /root/temphubzilla ]; then
322
+        rm -rf /root/temphubzilla
354
     fi
323
     fi
355
 }
324
 }
356
 
325
 
359
         return
328
         return
360
     fi
329
     fi
361
     echo $'Removing Hubzilla'
330
     echo $'Removing Hubzilla'
362
-    HUBZILLA_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "hubzilla domain" | awk -F ':' '{print $2}')
363
     nginx_dissite $HUBZILLA_DOMAIN_NAME
331
     nginx_dissite $HUBZILLA_DOMAIN_NAME
364
     if [ -d /var/www/$HUBZILLA_DOMAIN_NAME ]; then
332
     if [ -d /var/www/$HUBZILLA_DOMAIN_NAME ]; then
365
         rm -rf /var/www/$HUBZILLA_DOMAIN_NAME
333
         rm -rf /var/www/$HUBZILLA_DOMAIN_NAME
376
 }
344
 }
377
 
345
 
378
 function install_hubzilla {
346
 function install_hubzilla {
379
-    if [ ! $ONION_ONLY ]; then
380
-        ONION_ONLY='no'
381
-    fi
382
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
383
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
384
-    fi
385
-    if grep -q "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE; then
386
-        HUBZILLA_DOMAIN_NAME=$(grep "HUBZILLA_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
387
-    fi
388
-    if grep -q "HUBZILLA_CODE" $CONFIGURATION_FILE; then
389
-        HUBZILLA_CODE=$(grep "HUBZILLA_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
390
-    fi
391
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
392
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
393
-    fi
394
-
395
     if [ ! $HUBZILLA_DOMAIN_NAME ]; then
347
     if [ ! $HUBZILLA_DOMAIN_NAME ]; then
396
         return
348
         return
397
     fi
349
     fi

+ 5
- 0
src/freedombone-app-ipfs 查看文件

41
 IPFS_KEY_LENGTH=2048
41
 IPFS_KEY_LENGTH=2048
42
 IPFS_GO_VERSION=0.4.2
42
 IPFS_GO_VERSION=0.4.2
43
 
43
 
44
+ipfs_variables=(IPFS_COMMIT
45
+                IPFS_GO_VERSION
46
+                IPFS_KEY_LENGTH
47
+                IPFS_PORT)
48
+
44
 function install_interactive_ipfs {
49
 function install_interactive_ipfs {
45
     echo -n ''
50
     echo -n ''
46
 }
51
 }

+ 174
- 169
src/freedombone-app-irc 查看文件

36
 # An optional password to log into IRC. This applies to all users
36
 # An optional password to log into IRC. This applies to all users
37
 IRC_PASSWORD=
37
 IRC_PASSWORD=
38
 
38
 
39
+irc_variables=(MY_USERNAME
40
+               MY_NAME
41
+               IRC_PORT
42
+               IRC_PASSWORD
43
+               DEFAULT_DOMAIN_NAME
44
+               INSTALLED_WITHIN_DOCKER
45
+               ONION_ONLY)
46
+
39
 function remove_user_irc {
47
 function remove_user_irc {
40
     remove_username="$1"
48
     remove_username="$1"
41
 
49
 
42
-    if [ -d /home/$remove_username/.irssi ]; then
43
-        rm -rf /home/$remove_username/.irssi
50
+    if [ -d /home/${remove_username}/.irssi ]; then
51
+        rm -rf /home/${remove_username}/.irssi
44
     fi
52
     fi
45
-    if [ -d /home/$remove_username/irclogs ]; then
46
-        rm -rf /home/$remove_username/irclogs
53
+    if [ -d /home/${remove_username}/irclogs ]; then
54
+        rm -rf /home/${remove_username}/irclogs
47
     fi
55
     fi
48
 }
56
 }
49
 
57
 
51
     new_username="$1"
59
     new_username="$1"
52
     new_user_password="$2"
60
     new_user_password="$2"
53
 
61
 
54
-    if grep -q "IRC_PORT" $CONFIGURATION_FILE; then
55
-        IRC_PORT=$(grep "IRC_PORT" $CONFIGURATION_FILE | head -n 1 | awk -F '=' '{print $2}')
56
-    fi
57
     IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
62
     IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
58
     if [ ${#IRC_PASSWORD} -lt 2 ]; then
63
     if [ ${#IRC_PASSWORD} -lt 2 ]; then
59
         IRC_PASSWORD=
64
         IRC_PASSWORD=
60
     fi
65
     fi
61
 
66
 
62
-    if [ ! -d /home/$new_username/.irssi ]; then
63
-        mkdir /home/$new_username/.irssi
67
+    if [ ! -d /home/${new_username}/.irssi ]; then
68
+        mkdir /home/${new_username}/.irssi
64
     fi
69
     fi
65
 
70
 
66
-    echo 'servers = (' > /home/$new_username/.irssi/config
67
-    echo '  {' >> /home/$new_username/.irssi/config
68
-    echo '    address = "chat.freenode.net";' >> /home/$new_username/.irssi/config
69
-    echo '    chatnet = "Freenode";' >> /home/$new_username/.irssi/config
70
-    echo '    port = "6667";' >> /home/$new_username/.irssi/config
71
-    echo '    autoconnect = "no";' >> /home/$new_username/.irssi/config
72
-    echo '  },' >> /home/$new_username/.irssi/config
73
-    echo '  {' >> /home/$new_username/.irssi/config
74
-    echo '    address = "irc.oftc.net";' >> /home/$new_username/.irssi/config
75
-    echo '    chatnet = "OFTC";' >> /home/$new_username/.irssi/config
76
-    echo '    port = "6667";' >> /home/$new_username/.irssi/config
77
-    echo '    autoconnect = "yes";' >> /home/$new_username/.irssi/config
78
-    echo '  },' >> /home/$new_username/.irssi/config
79
-    echo '  {' >> /home/$new_username/.irssi/config
80
-    echo "    address = \"${HOSTNAME}\";" >> /home/$new_username/.irssi/config
81
-    echo '    chatnet = "Freedombone";' >> /home/$new_username/.irssi/config
82
-    echo "    port = \"${IRC_PORT}\";" >> /home/$new_username/.irssi/config
83
-    echo '    use_ssl = "yes";' >> /home/$new_username/.irssi/config
84
-    echo '    ssl_verify = "no";' >> /home/$new_username/.irssi/config
85
-    echo '    autoconnect = "yes";' >> /home/$new_username/.irssi/config
86
-
87
-    echo '  }' >> /home/$new_username/.irssi/config
88
-    echo ');' >> /home/$new_username/.irssi/config
89
-    echo '' >> /home/$new_username/.irssi/config
90
-    echo 'chatnets = {' >> /home/$new_username/.irssi/config
91
-    echo '  Freedombone = {' >> /home/$new_username/.irssi/config
92
-    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
93
-    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
94
-    echo '    max_msgs = "4";' >> /home/$new_username/.irssi/config
95
-    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
96
-    echo '  };' >> /home/$new_username/.irssi/config
97
-    echo '  Freenode = {' >> /home/$new_username/.irssi/config
98
-    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
99
-    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
100
-    echo '    max_msgs = "4";' >> /home/$new_username/.irssi/config
101
-    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
102
-    echo '  };' >> /home/$new_username/.irssi/config
103
-    echo '  OFTC = {' >> /home/$new_username/.irssi/config
104
-    echo '    type = "IRC";' >> /home/$new_username/.irssi/config
105
-    echo '    max_kicks = "1";' >> /home/$new_username/.irssi/config
106
-    echo '    max_msgs = "1";' >> /home/$new_username/.irssi/config
107
-    echo '    max_whois = "1";' >> /home/$new_username/.irssi/config
108
-    echo '  };' >> /home/$new_username/.irssi/config
109
-    echo '};' >> /home/$new_username/.irssi/config
110
-    echo '' >> /home/$new_username/.irssi/config
111
-    echo 'channels = (' >> /home/$new_username/.irssi/config
112
-    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$new_username/.irssi/config
113
-    echo ');' >> /home/$new_username/.irssi/config
114
-    echo '' >> /home/$new_username/.irssi/config
115
-    echo 'settings = {' >> /home/$new_username/.irssi/config
116
-    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$new_username\"; nick = \"$new_username\"; };" >> /home/$new_username/.irssi/config
117
-    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/$new_username/.irssi/config
71
+    echo 'servers = (' > /home/${new_username}/.irssi/config
72
+    echo '  {' >> /home/${new_username}/.irssi/config
73
+    echo '    address = "chat.freenode.net";' >> /home/${new_username}/.irssi/config
74
+    echo '    chatnet = "Freenode";' >> /home/${new_username}/.irssi/config
75
+    echo '    port = "6667";' >> /home/${new_username}/.irssi/config
76
+    echo '    autoconnect = "no";' >> /home/${new_username}/.irssi/config
77
+    echo '  },' >> /home/${new_username}/.irssi/config
78
+    echo '  {' >> /home/${new_username}/.irssi/config
79
+    echo '    address = "irc.oftc.net";' >> /home/${new_username}/.irssi/config
80
+    echo '    chatnet = "OFTC";' >> /home/${new_username}/.irssi/config
81
+    echo '    port = "6667";' >> /home/${new_username}/.irssi/config
82
+    echo '    autoconnect = "yes";' >> /home/${new_username}/.irssi/config
83
+    echo '  },' >> /home/${new_username}/.irssi/config
84
+    echo '  {' >> /home/${new_username}/.irssi/config
85
+    echo "    address = \"${HOSTNAME}\";" >> /home/${new_username}/.irssi/config
86
+    echo '    chatnet = "Freedombone";' >> /home/${new_username}/.irssi/config
87
+    echo "    port = \"${IRC_PORT}\";" >> /home/${new_username}/.irssi/config
88
+    echo '    use_ssl = "yes";' >> /home/${new_username}/.irssi/config
89
+    echo '    ssl_verify = "no";' >> /home/${new_username}/.irssi/config
90
+    echo '    autoconnect = "yes";' >> /home/${new_username}/.irssi/config
91
+
92
+    echo '  }' >> /home/${new_username}/.irssi/config
93
+    echo ');' >> /home/${new_username}/.irssi/config
94
+    echo '' >> /home/${new_username}/.irssi/config
95
+    echo 'chatnets = {' >> /home/${new_username}/.irssi/config
96
+    echo '  Freedombone = {' >> /home/${new_username}/.irssi/config
97
+    echo '    type = "IRC";' >> /home/${new_username}/.irssi/config
98
+    echo '    max_kicks = "1";' >> /home/${new_username}/.irssi/config
99
+    echo '    max_msgs = "4";' >> /home/${new_username}/.irssi/config
100
+    echo '    max_whois = "1";' >> /home/${new_username}/.irssi/config
101
+    echo '  };' >> /home/${new_username}/.irssi/config
102
+    echo '  Freenode = {' >> /home/${new_username}/.irssi/config
103
+    echo '    type = "IRC";' >> /home/${new_username}/.irssi/config
104
+    echo '    max_kicks = "1";' >> /home/${new_username}/.irssi/config
105
+    echo '    max_msgs = "4";' >> /home/${new_username}/.irssi/config
106
+    echo '    max_whois = "1";' >> /home/${new_username}/.irssi/config
107
+    echo '  };' >> /home/${new_username}/.irssi/config
108
+    echo '  OFTC = {' >> /home/${new_username}/.irssi/config
109
+    echo '    type = "IRC";' >> /home/${new_username}/.irssi/config
110
+    echo '    max_kicks = "1";' >> /home/${new_username}/.irssi/config
111
+    echo '    max_msgs = "1";' >> /home/${new_username}/.irssi/config
112
+    echo '    max_whois = "1";' >> /home/${new_username}/.irssi/config
113
+    echo '  };' >> /home/${new_username}/.irssi/config
114
+    echo '};' >> /home/${new_username}/.irssi/config
115
+    echo '' >> /home/${new_username}/.irssi/config
116
+    echo 'channels = (' >> /home/${new_username}/.irssi/config
117
+    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/${new_username}/.irssi/config
118
+    echo ');' >> /home/${new_username}/.irssi/config
119
+    echo '' >> /home/${new_username}/.irssi/config
120
+    echo 'settings = {' >> /home/${new_username}/.irssi/config
121
+    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$new_username\"; nick = \"$new_username\"; };" >> /home/${new_username}/.irssi/config
122
+    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/${new_username}/.irssi/config
118
     echo '};' >> /home/$new_username/.irssi/config
123
     echo '};' >> /home/$new_username/.irssi/config
119
-    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$new_username/.irssi/config
124
+    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/${new_username}/.irssi/config
120
 
125
 
121
-    chown -R $new_username:$new_username /home/$new_username/.irssi
126
+    chown -R ${new_username}:${new_username} /home/${new_username}/.irssi
122
 
127
 
123
     echo '0'
128
     echo '0'
124
 }
129
 }
149
             for d in /home/*/ ; do
154
             for d in /home/*/ ; do
150
                 IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
155
                 IRC_USERNAME=$(echo "$d" | awk -F '/' '{print $3}')
151
                 if [[ $(is_valid_user "$IRC_USERNAME") == "1" ]]; then
156
                 if [[ $(is_valid_user "$IRC_USERNAME") == "1" ]]; then
152
-                    if [ -f /home/$IRC_USERNAME/.irssi/config ]; then
153
-                        sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/$IRC_USERNAME/.irssi/config
154
-                        chown -R $IRC_USERNAME:$IRC_USERNAME /home/$IRC_USERNAME/.irssi
157
+                    if [ -f /home/${IRC_USERNAME}/.irssi/config ]; then
158
+                        sed -i "s|$EXISTING_IRC_PASSWORD|$NEW_IRC_PASSWORD|g" /home/${IRC_USERNAME}/.irssi/config
159
+                        chown -R ${IRC_USERNAME}:${IRC_USERNAME} /home/${IRC_USERNAME}/.irssi
155
                     fi
160
                     fi
156
                 fi
161
                 fi
157
             done
162
             done
238
     if [ -d /etc/ngircd ]; then
243
     if [ -d /etc/ngircd ]; then
239
         rm -rf /etc/ngircd
244
         rm -rf /etc/ngircd
240
     fi
245
     fi
241
-    iptables -D INPUT -p tcp --dport $IRC_PORT  -j ACCEPT
242
-    iptables -D INPUT -p tcp --dport 1024:65535 --sport $IRC_PORT -j ACCEPT
246
+    iptables -D INPUT -p tcp --dport ${IRC_PORT}  -j ACCEPT
247
+    iptables -D INPUT -p tcp --dport 1024:65535 --sport ${IRC_PORT} -j ACCEPT
243
     function_check save_firewall_settings
248
     function_check save_firewall_settings
244
     save_firewall_settings
249
     save_firewall_settings
245
     function_check remove_onion_service
250
     function_check remove_onion_service
246
     remove_onion_service irc ${IRC_ONION_PORT}
251
     remove_onion_service irc ${IRC_ONION_PORT}
247
-    sed -i '/install_irc/d' $COMPLETION_FILE
248
-    sed -i '/IRC /d' $COMPLETION_FILE
249
-    sed -i '/configure_firewall_for_irc/d' $COMPLETION_FILE
252
+    sed -i '/install_irc/d' ${COMPLETION_FILE}
253
+    sed -i '/IRC /d' ${COMPLETION_FILE}
254
+    sed -i '/configure_firewall_for_irc/d' ${COMPLETION_FILE}
250
 }
255
 }
251
 
256
 
252
 function configure_firewall_for_irc {
257
 function configure_firewall_for_irc {
253
     if [ ! -d /etc/ngircd ]; then
258
     if [ ! -d /etc/ngircd ]; then
254
         return
259
         return
255
     fi
260
     fi
256
-    if grep -Fxq "configure_firewall_for_irc" $COMPLETION_FILE; then
261
+    if grep -Fxq "configure_firewall_for_irc" ${COMPLETION_FILE}; then
257
         return
262
         return
258
     fi
263
     fi
259
-    if [[ $INSTALLED_WITHIN_DOCKER == "yes" ]]; then
264
+    if [[ ${INSTALLED_WITHIN_DOCKER} == "yes" ]]; then
260
         # docker does its own firewalling
265
         # docker does its own firewalling
261
         return
266
         return
262
     fi
267
     fi
263
-    if [[ $ONION_ONLY != "no" ]]; then
268
+    if [[ ${ONION_ONLY} != "no" ]]; then
264
         return
269
         return
265
     fi
270
     fi
266
-    iptables -A INPUT -p tcp --dport $IRC_PORT  -j ACCEPT
267
-    iptables -I INPUT -p tcp --dport 1024:65535 --sport $IRC_PORT -j ACCEPT
271
+    iptables -A INPUT -p tcp --dport ${IRC_PORT}  -j ACCEPT
272
+    iptables -I INPUT -p tcp --dport 1024:65535 --sport ${IRC_PORT} -j ACCEPT
268
     function_check save_firewall_settings
273
     function_check save_firewall_settings
269
     save_firewall_settings
274
     save_firewall_settings
270
 
275
 
271
     OPEN_PORTS+=("IRC      $IRC_PORT")
276
     OPEN_PORTS+=("IRC      $IRC_PORT")
272
-    echo 'configure_firewall_for_irc' >> $COMPLETION_FILE
277
+    echo 'configure_firewall_for_irc' >> ${COMPLETION_FILE}
273
 }
278
 }
274
 
279
 
275
 function install_irc_server {
280
 function install_irc_server {
284
     fi
289
     fi
285
 
290
 
286
     if [ ! -f /etc/ssl/certs/ngircd.dhparam ]; then
291
     if [ ! -f /etc/ssl/certs/ngircd.dhparam ]; then
287
-        ${PROJECT_NAME}-addcert -h ngircd --dhkey $DH_KEYLENGTH
292
+        ${PROJECT_NAME}-addcert -h ngircd --dhkey ${DH_KEYLENGTH}
288
         function_check check_certificates
293
         function_check check_certificates
289
         check_certificates ngircd
294
         check_certificates ngircd
290
     fi
295
     fi
291
 
296
 
292
-    DEFAULTDOMAIN=$DEFAULT_DOMAIN_NAME
293
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
297
+    DEFAULTDOMAIN=${DEFAULT_DOMAIN_NAME}
298
+    if [[ ${SYSTEM_TYPE} == "$VARIANT_MESH" ]]; then
294
         DEFAULTDOMAIN="${DEFAULT_DOMAIN_NAME}.local"
299
         DEFAULTDOMAIN="${DEFAULT_DOMAIN_NAME}.local"
295
     fi
300
     fi
296
 
301
 
297
     # create a login password if needed
302
     # create a login password if needed
298
-    if [ ! $IRC_PASSWORD ]; then
303
+    if [ ! ${IRC_PASSWORD} ]; then
299
         IRC_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
304
         IRC_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
300
     fi
305
     fi
301
 
306
 
312
     sed -i 's|;CertFile = /etc/ssl/certs/server.crt|CertFile = /etc/ssl/certs/ngircd.crt|g' /etc/ngircd/ngircd.conf
317
     sed -i 's|;CertFile = /etc/ssl/certs/server.crt|CertFile = /etc/ssl/certs/ngircd.crt|g' /etc/ngircd/ngircd.conf
313
     sed -i 's|;DHFile = /etc/ngircd/dhparams.pem|DHFile = /etc/ssl/certs/ngircd.dhparam|g' /etc/ngircd/ngircd.conf
318
     sed -i 's|;DHFile = /etc/ngircd/dhparams.pem|DHFile = /etc/ssl/certs/ngircd.dhparam|g' /etc/ngircd/ngircd.conf
314
     sed -i 's|;KeyFile = /etc/ssl/private/server.key|KeyFile = /etc/ssl/private/ngircd.key|g' /etc/ngircd/ngircd.conf
319
     sed -i 's|;KeyFile = /etc/ssl/private/server.key|KeyFile = /etc/ssl/private/ngircd.key|g' /etc/ngircd/ngircd.conf
315
-    sed -i "s/;Ports =.*/Ports = $IRC_PORT/1" /etc/ngircd/ngircd.conf
316
-    sed -i "s/;Ports =.*/Ports = $IRC_PORT/2" /etc/ngircd/ngircd.conf
320
+    sed -i "s/;Ports =.*/Ports = ${IRC_PORT}/1" /etc/ngircd/ngircd.conf
321
+    sed -i "s/;Ports =.*/Ports = ${IRC_PORT}/2" /etc/ngircd/ngircd.conf
317
     sed -i "s/;Name = #ngircd/Name = #${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
322
     sed -i "s/;Name = #ngircd/Name = #${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
318
     sed -i "s/;Topic = Our ngircd testing channel/Topic = ${PROJECT_NAME} chat channel/g" /etc/ngircd/ngircd.conf
323
     sed -i "s/;Topic = Our ngircd testing channel/Topic = ${PROJECT_NAME} chat channel/g" /etc/ngircd/ngircd.conf
319
     sed -i 's/;MaxUsers = 23/MaxUsers = 23/g' /etc/ngircd/ngircd.conf
324
     sed -i 's/;MaxUsers = 23/MaxUsers = 23/g' /etc/ngircd/ngircd.conf
320
     sed -i "s|;KeyFile = /etc/ngircd/#chan.key|KeyFile = /etc/ngircd/#${PROJECT_NAME}.key|g" /etc/ngircd/ngircd.conf
325
     sed -i "s|;KeyFile = /etc/ngircd/#chan.key|KeyFile = /etc/ngircd/#${PROJECT_NAME}.key|g" /etc/ngircd/ngircd.conf
321
     sed -i "s/;CloakHost = cloaked.host/CloakHost = ${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
326
     sed -i "s/;CloakHost = cloaked.host/CloakHost = ${PROJECT_NAME}/g" /etc/ngircd/ngircd.conf
322
     IRC_SALT="$(create_password 30)"
327
     IRC_SALT="$(create_password 30)"
323
-    if [ -f $IMAGE_PASSWORD_FILE ]; then
328
+    if [ -f ${IMAGE_PASSWORD_FILE} ]; then
324
         IRC_OPERATOR_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
329
         IRC_OPERATOR_PASSWORD="$(printf `cat $IMAGE_PASSWORD_FILE`)"
325
     else
330
     else
326
         IRC_OPERATOR_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
331
         IRC_OPERATOR_PASSWORD="$(create_password ${MINIMUM_PASSWORD_LENGTH})"
332
     sed -i "s/;Name = TheOper/Name = $MY_USERNAME/g" /etc/ngircd/ngircd.conf
337
     sed -i "s/;Name = TheOper/Name = $MY_USERNAME/g" /etc/ngircd/ngircd.conf
333
     sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
338
     sed -i "s/;Password = ThePwd/Password = $IRC_OPERATOR_PASSWORD/g" /etc/ngircd/ngircd.conf
334
     sed -i 's|;Listen =.*|Listen = 0.0.0.0,0.0.0.0:9050,127.0.0.1,127.0.0.1:9050|g' /etc/ngircd/ngircd.conf
339
     sed -i 's|;Listen =.*|Listen = 0.0.0.0,0.0.0.0:9050,127.0.0.1,127.0.0.1:9050|g' /etc/ngircd/ngircd.conf
335
-    if [ $IRC_PASSWORD ]; then
340
+    if [ ${IRC_PASSWORD} ]; then
336
         sed -i "0,/RE/s/Password =.*/Password =$IRC_PASSWORD/" /etc/ngircd/ngircd.conf
341
         sed -i "0,/RE/s/Password =.*/Password =$IRC_PASSWORD/" /etc/ngircd/ngircd.conf
337
     fi
342
     fi
338
     # If we are on a mesh then DNS is not available
343
     # If we are on a mesh then DNS is not available
339
-    if [[ $SYSTEM_TYPE == "$VARIANT_MESH" ]]; then
344
+    if [[ ${SYSTEM_TYPE} == "$VARIANT_MESH" ]]; then
340
         sed -i "s/;DNS =.*/DNS = no/g" /etc/ngircd/ngircd.conf
345
         sed -i "s/;DNS =.*/DNS = no/g" /etc/ngircd/ngircd.conf
341
     fi
346
     fi
342
     # upgrade a cypher
347
     # upgrade a cypher
353
 
358
 
354
     add_watchdog_daemon ngircd
359
     add_watchdog_daemon ngircd
355
 
360
 
356
-    if ! grep -q $"IRC Server" /home/$MY_USERNAME/README; then
357
-        echo '' >> /home/$MY_USERNAME/README
358
-        echo '' >> /home/$MY_USERNAME/README
359
-        echo $'IRC Server' >> /home/$MY_USERNAME/README
360
-        echo '==========' >> /home/$MY_USERNAME/README
361
-        echo $'To connect to your IRC server in irssi:' >> /home/$MY_USERNAME/README
362
-        echo '' >> /home/$MY_USERNAME/README
363
-        if [[ $ONION_ONLY != 'yes' ]]; then
364
-            echo "  irssi" >> /home/$MY_USERNAME/README
365
-            echo "  /server add -auto -ssl $DEFAULTDOMAIN $IRC_PORT" >> /home/$MY_USERNAME/README
366
-            echo "  /connect $DEFAULT_DOMAIN_NAME" >> /home/$MY_USERNAME/README
361
+    if ! grep -q $"IRC Server" /home/${MY_USERNAME}/README; then
362
+        echo '' >> /home/${MY_USERNAME}/README
363
+        echo '' >> /home/${MY_USERNAME}/README
364
+        echo $'IRC Server' >> /home/${MY_USERNAME}/README
365
+        echo '==========' >> /home/${MY_USERNAME}/README
366
+        echo $'To connect to your IRC server in irssi:' >> /home/${MY_USERNAME}/README
367
+        echo '' >> /home/${MY_USERNAME}/README
368
+        if [[ ${ONION_ONLY} != 'yes' ]]; then
369
+            echo "  irssi" >> /home/${MY_USERNAME}/README
370
+            echo "  /server add -auto -ssl $DEFAULTDOMAIN $IRC_PORT" >> /home/${MY_USERNAME}/README
371
+            echo "  /connect $DEFAULT_DOMAIN_NAME" >> /home/${MY_USERNAME}/README
367
         else
372
         else
368
-            echo "  usetorwith irssi" >> /home/$MY_USERNAME/README
369
-            echo "  /server add -auto $IRC_ONION_HOSTNAME $IRC_PORT" >> /home/$MY_USERNAME/README
370
-            echo "  /connect $IRC_ONION_HOSTNAME" >> /home/$MY_USERNAME/README
373
+            echo "  usetorwith irssi" >> /home/${MY_USERNAME}/README
374
+            echo "  /server add -auto $IRC_ONION_HOSTNAME $IRC_PORT" >> /home/${MY_USERNAME}/README
375
+            echo "  /connect $IRC_ONION_HOSTNAME" >> /home/${MY_USERNAME}/README
371
         fi
376
         fi
372
-        echo "  /join #${PROJECT_NAME}" >> /home/$MY_USERNAME/README
373
-        chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
374
-        chmod 600 /home/$MY_USERNAME/README
377
+        echo "  /join #${PROJECT_NAME}" >> /home/${MY_USERNAME}/README
378
+        chown ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/README
379
+        chmod 600 /home/${MY_USERNAME}/README
375
     fi
380
     fi
376
 
381
 
377
     function_check configure_firewall_for_irc
382
     function_check configure_firewall_for_irc
378
     configure_firewall_for_irc
383
     configure_firewall_for_irc
379
-    echo 'install_irc_server' >> $COMPLETION_FILE
384
+    install_completed irc_server
380
 }
385
 }
381
 
386
 
382
 function install_irc_client {
387
 function install_irc_client {
385
     fi
390
     fi
386
     apt-get -y install irssi
391
     apt-get -y install irssi
387
 
392
 
388
-    if [ ! -d /home/$MY_USERNAME/.irssi ]; then
389
-        mkdir /home/$MY_USERNAME/.irssi
393
+    if [ ! -d /home/${MY_USERNAME}/.irssi ]; then
394
+        mkdir /home/${MY_USERNAME}/.irssi
390
     fi
395
     fi
391
 
396
 
392
-    echo 'servers = (' > /home/$MY_USERNAME/.irssi/config
393
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
394
-    echo '    address = "chat.freenode.net";' >> /home/$MY_USERNAME/.irssi/config
395
-    echo '    chatnet = "Freenode";' >> /home/$MY_USERNAME/.irssi/config
396
-    echo '    port = "6667";' >> /home/$MY_USERNAME/.irssi/config
397
-    echo '    autoconnect = "no";' >> /home/$MY_USERNAME/.irssi/config
398
-    echo '  },' >> /home/$MY_USERNAME/.irssi/config
399
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
400
-    echo '    address = "irc.oftc.net";' >> /home/$MY_USERNAME/.irssi/config
401
-    echo '    chatnet = "OFTC";' >> /home/$MY_USERNAME/.irssi/config
402
-    echo '    port = "6667";' >> /home/$MY_USERNAME/.irssi/config
403
-    echo '    autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
404
-    echo '  },' >> /home/$MY_USERNAME/.irssi/config
405
-    echo '  {' >> /home/$MY_USERNAME/.irssi/config
406
-    echo "    address = \"127.0.0.1\";" >> /home/$MY_USERNAME/.irssi/config
407
-    if [[ $ONION_ONLY == 'no' ]]; then
408
-        echo "    port = \"${IRC_PORT}\";" >> /home/$MY_USERNAME/.irssi/config
409
-        echo '    use_ssl = "yes";' >> /home/$MY_USERNAME/.irssi/config
397
+    echo 'servers = (' > /home/${MY_USERNAME}/.irssi/config
398
+    echo '  {' >> /home/${MY_USERNAME}/.irssi/config
399
+    echo '    address = "chat.freenode.net";' >> /home/${MY_USERNAME}/.irssi/config
400
+    echo '    chatnet = "Freenode";' >> /home/${MY_USERNAME}/.irssi/config
401
+    echo '    port = "6667";' >> /home/${MY_USERNAME}/.irssi/config
402
+    echo '    autoconnect = "no";' >> /home/${MY_USERNAME}/.irssi/config
403
+    echo '  },' >> /home/${MY_USERNAME}/.irssi/config
404
+    echo '  {' >> /home/${MY_USERNAME}/.irssi/config
405
+    echo '    address = "irc.oftc.net";' >> /home/${MY_USERNAME}/.irssi/config
406
+    echo '    chatnet = "OFTC";' >> /home/${MY_USERNAME}/.irssi/config
407
+    echo '    port = "6667";' >> /home/${MY_USERNAME}/.irssi/config
408
+    echo '    autoconnect = "yes";' >> /home/${MY_USERNAME}/.irssi/config
409
+    echo '  },' >> /home/${MY_USERNAME}/.irssi/config
410
+    echo '  {' >> /home/${MY_USERNAME}/.irssi/config
411
+    echo "    address = \"127.0.0.1\";" >> /home/${MY_USERNAME}/.irssi/config
412
+    if [[ ${ONION_ONLY} == 'no' ]]; then
413
+        echo "    port = \"${IRC_PORT}\";" >> /home/${MY_USERNAME}/.irssi/config
414
+        echo '    use_ssl = "yes";' >> /home/${MY_USERNAME}/.irssi/config
410
     else
415
     else
411
-        IRC_ONION_HOSTNAME=$(cat $COMPLETION_FILE | grep "irc onion domain" | awk -F ':' '{print $2}')
412
-        echo "    port = \"${IRC_ONION_PORT}\";" >> /home/$MY_USERNAME/.irssi/config
413
-        echo '    use_ssl = "no";' >> /home/$MY_USERNAME/.irssi/config
416
+        IRC_ONION_HOSTNAME=$(cat ${COMPLETION_FILE} | grep "irc onion domain" | awk -F ':' '{print $2}')
417
+        echo "    port = \"${IRC_ONION_PORT}\";" >> /home/${MY_USERNAME}/.irssi/config
418
+        echo '    use_ssl = "no";' >> /home/${MY_USERNAME}/.irssi/config
414
     fi
419
     fi
415
-    echo '    chatnet = "Freedombone";' >> /home/$MY_USERNAME/.irssi/config
416
-    echo '    ssl_verify = "no";' >> /home/$MY_USERNAME/.irssi/config
417
-    echo '    autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
418
-    if [ $IRC_PASSWORD ]; then
419
-        echo "    password = \"${IRC_PASSWORD}\";" >> /home/$MY_USERNAME/.irssi/config
420
+    echo '    chatnet = "Freedombone";' >> /home/${MY_USERNAME}/.irssi/config
421
+    echo '    ssl_verify = "no";' >> /home/${MY_USERNAME}/.irssi/config
422
+    echo '    autoconnect = "yes";' >> /home/${MY_USERNAME}/.irssi/config
423
+    if [ ${IRC_PASSWORD} ]; then
424
+        echo "    password = \"${IRC_PASSWORD}\";" >> /home/${MY_USERNAME}/.irssi/config
420
     fi
425
     fi
421
-    echo '  }' >> /home/$MY_USERNAME/.irssi/config
422
-    echo ');' >> /home/$MY_USERNAME/.irssi/config
423
-    echo '' >> /home/$MY_USERNAME/.irssi/config
424
-    echo 'chatnets = {' >> /home/$MY_USERNAME/.irssi/config
425
-    echo '  Freedombone = {' >> /home/$MY_USERNAME/.irssi/config
426
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
427
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
428
-    echo '    max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
429
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
430
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
431
-    echo '  Freenode = {' >> /home/$MY_USERNAME/.irssi/config
432
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
433
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
434
-    echo '    max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
435
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
436
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
437
-    echo '  OFTC = {' >> /home/$MY_USERNAME/.irssi/config
438
-    echo '    type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
439
-    echo '    max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
440
-    echo '    max_msgs = "1";' >> /home/$MY_USERNAME/.irssi/config
441
-    echo '    max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
442
-    echo '  };' >> /home/$MY_USERNAME/.irssi/config
443
-    echo '};' >> /home/$MY_USERNAME/.irssi/config
444
-    echo '' >> /home/$MY_USERNAME/.irssi/config
445
-    echo 'channels = (' >> /home/$MY_USERNAME/.irssi/config
446
-    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$MY_USERNAME/.irssi/config
447
-    echo ');' >> /home/$MY_USERNAME/.irssi/config
448
-    echo '' >> /home/$MY_USERNAME/.irssi/config
449
-    echo 'settings = {' >> /home/$MY_USERNAME/.irssi/config
450
-    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$MY_USERNAME\"; nick = \"$MY_USERNAME\"; };" >> /home/$MY_USERNAME/.irssi/config
451
-    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/$MY_USERNAME/.irssi/config
452
-    echo '};' >> /home/$MY_USERNAME/.irssi/config
453
-    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$MY_USERNAME/.irssi/config
454
-
455
-    chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.irssi
456
-
457
-    echo 'install_irc_client' >> $COMPLETION_FILE
426
+    echo '  }' >> /home/${MY_USERNAME}/.irssi/config
427
+    echo ');' >> /home/${MY_USERNAME}/.irssi/config
428
+    echo '' >> /home/${MY_USERNAME}/.irssi/config
429
+    echo 'chatnets = {' >> /home/${MY_USERNAME}/.irssi/config
430
+    echo '  Freedombone = {' >> /home/${MY_USERNAME}/.irssi/config
431
+    echo '    type = "IRC";' >> /home/${MY_USERNAME}/.irssi/config
432
+    echo '    max_kicks = "1";' >> /home/${MY_USERNAME}/.irssi/config
433
+    echo '    max_msgs = "4";' >> /home/${MY_USERNAME}/.irssi/config
434
+    echo '    max_whois = "1";' >> /home/${MY_USERNAME}/.irssi/config
435
+    echo '  };' >> /home/${MY_USERNAME}/.irssi/config
436
+    echo '  Freenode = {' >> /home/${MY_USERNAME}/.irssi/config
437
+    echo '    type = "IRC";' >> /home/${MY_USERNAME}/.irssi/config
438
+    echo '    max_kicks = "1";' >> /home/${MY_USERNAME}/.irssi/config
439
+    echo '    max_msgs = "4";' >> /home/${MY_USERNAME}/.irssi/config
440
+    echo '    max_whois = "1";' >> /home/${MY_USERNAME}/.irssi/config
441
+    echo '  };' >> /home/${MY_USERNAME}/.irssi/config
442
+    echo '  OFTC = {' >> /home/${MY_USERNAME}/.irssi/config
443
+    echo '    type = "IRC";' >> /home/${MY_USERNAME}/.irssi/config
444
+    echo '    max_kicks = "1";' >> /home/${MY_USERNAME}/.irssi/config
445
+    echo '    max_msgs = "1";' >> /home/${MY_USERNAME}/.irssi/config
446
+    echo '    max_whois = "1";' >> /home/${MY_USERNAME}/.irssi/config
447
+    echo '  };' >> /home/${MY_USERNAME}/.irssi/config
448
+    echo '};' >> /home/${MY_USERNAME}/.irssi/config
449
+    echo '' >> /home/${MY_USERNAME}/.irssi/config
450
+    echo 'channels = (' >> /home/${MY_USERNAME}/.irssi/config
451
+    echo '  { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/${MY_USERNAME}/.irssi/config
452
+    echo ');' >> /home/${MY_USERNAME}/.irssi/config
453
+    echo '' >> /home/${MY_USERNAME}/.irssi/config
454
+    echo 'settings = {' >> /home/${MY_USERNAME}/.irssi/config
455
+    echo "  core = { real_name = \"$MY_NAME\"; user_name = \"$MY_USERNAME\"; nick = \"$MY_USERNAME\"; };" >> /home/${MY_USERNAME}/.irssi/config
456
+    echo '  "fe-text" = { actlist_sort = "refnum"; };' >> /home/${MY_USERNAME}/.irssi/config
457
+    echo '};' >> /home/${MY_USERNAME}/.irssi/config
458
+    echo 'ignores = ( { level = "CTCPS"; } );' >> /home/${MY_USERNAME}/.irssi/config
459
+
460
+    chown -R ${MY_USERNAME}:${MY_USERNAME} /home/${MY_USERNAME}/.irssi
461
+
462
+    install_completed irc_client
458
 }
463
 }
459
 
464
 
460
 function install_irc {
465
 function install_irc {

+ 6
- 0
src/freedombone-app-librevault 查看文件

37
 LIBREVAULT_COMMIT='86a6aefcb5cc458f4d42195368fbcff2871f98e3'
37
 LIBREVAULT_COMMIT='86a6aefcb5cc458f4d42195368fbcff2871f98e3'
38
 LIBREVAULT_PORT=42345
38
 LIBREVAULT_PORT=42345
39
 
39
 
40
+librevault_variables=(PROTOBUF_REPO
41
+                      PROTOBUF_COMMIT
42
+                      LIBREVAULT_REPO
43
+                      LIBREVAULT_COMMIT
44
+                      LIBREVAULT_PORT)
45
+
40
 function install_interactive_librevault {
46
 function install_interactive_librevault {
41
     echo -n ''
47
     echo -n ''
42
 }
48
 }

+ 25
- 71
src/freedombone-app-mediagoblin 查看文件

37
 MEDIAGOBLIN_ADMIN_PASSWORD=
37
 MEDIAGOBLIN_ADMIN_PASSWORD=
38
 MEDIAGOBLIN_ONION_PORT=8096
38
 MEDIAGOBLIN_ONION_PORT=8096
39
 
39
 
40
+mediagoblin_variables=(ONION_ONLY
41
+                       MEDIAGOBLIN_DOMAIN_NAME
42
+                       MEDIAGOBLIN_CODE
43
+                       MEDIAGOBLIN_REPO
44
+                       MEDIAGOBLIN_COMMIT
45
+                       DDNS_PROVIDER)
46
+
40
 function install_interactive_mediagoblin {
47
 function install_interactive_mediagoblin {
41
-    if [ ! $ONION_ONLY ]; then
42
-        ONION_ONLY='no'
43
-    fi
44
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
45
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
46
-    fi
47
-    if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
48
-        MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
49
-    fi
50
-    if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
51
-        MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
52
-    fi
53
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
54
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
55
-    fi
56
     if [[ $ONION_ONLY != "no" ]]; then
48
     if [[ $ONION_ONLY != "no" ]]; then
57
         MEDIAGOBLIN_DOMAIN_NAME='media.local'
49
         MEDIAGOBLIN_DOMAIN_NAME='media.local'
58
     else
50
     else
128
 }
120
 }
129
 
121
 
130
 function upgrade_mediagoblin {
122
 function upgrade_mediagoblin {
131
-    if [ ! $ONION_ONLY ]; then
132
-        ONION_ONLY='no'
133
-    fi
134
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
135
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
136
-    fi
137
-    if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
138
-        MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
139
-    fi
140
-    if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
141
-        MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
142
-    fi
143
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
144
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
145
-    fi
146
-
147
     if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
123
     if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
148
         return
124
         return
149
     fi
125
     fi
167
 }
143
 }
168
 
144
 
169
 function backup_remote_mediagoblin {
145
 function backup_remote_mediagoblin {
170
-    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
171
-        MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
172
-        function_check suspend_site
173
-        suspend_site ${MEDIAGOBLIN_DOMAIN_NAME}
146
+    function_check suspend_site
147
+    suspend_site ${MEDIAGOBLIN_DOMAIN_NAME}
174
 
148
 
175
-        echo $"Backing up Mediagoblin"
149
+    echo $"Backing up Mediagoblin"
176
 
150
 
177
-        backup_directory_to_friend /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs mediagoblin
151
+    backup_directory_to_friend /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs mediagoblin
178
 
152
 
179
-        function_check restart_site
180
-        restart_site
153
+    function_check restart_site
154
+    restart_site
181
 
155
 
182
-        echo $"Backup of Mediagoblin complete"
183
-    fi
156
+    echo $"Backup of Mediagoblin complete"
184
 }
157
 }
185
 
158
 
186
 function restore_remote_mediagoblin {
159
 function restore_remote_mediagoblin {
187
-    if grep -q "Mediagoblin domain" $COMPLETION_FILE; then
188
-        MEDIAGOBLIN_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Mediagoblin domain" | awk -F ':' '{print $2}')
189
-        if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
190
-            echo $"Restoring Mediagoblin installation"
191
-            temp_restore_dir=/root/tempmediagoblin
192
-            function_check restore_directory_from_friend
193
-            restore_directory_from_friend $temp_restore_dir mediagoblin
194
-            cp -r $temp_restore_dir/* /
195
-            if [ ! "$?" = "0" ]; then
196
-                exit 5626
197
-            fi
198
-            rm -rf $temp_restore_dir
199
-            echo $"Restore of Mediagoblin complete"
160
+    if [ -d $SERVER_DIRECTORY/backup/mediagoblin ]; then
161
+        echo $"Restoring Mediagoblin installation"
162
+        temp_restore_dir=/root/tempmediagoblin
163
+        function_check restore_directory_from_friend
164
+        restore_directory_from_friend $temp_restore_dir mediagoblin
165
+        cp -r $temp_restore_dir/* /
166
+        if [ ! "$?" = "0" ]; then
167
+            exit 5626
200
         fi
168
         fi
201
-        chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
169
+        rm -rf $temp_restore_dir
170
+        echo $"Restore of Mediagoblin complete"
202
     fi
171
     fi
172
+    chown -hR mediagoblin:www-data /var/www/$MEDIAGOBLIN_DOMAIN_NAME/htdocs
203
 }
173
 }
204
 
174
 
205
 function remove_mediagoblin {
175
 function remove_mediagoblin {
207
 }
177
 }
208
 
178
 
209
 function install_mediagoblin {
179
 function install_mediagoblin {
210
-    if [ ! $ONION_ONLY ]; then
211
-        ONION_ONLY='no'
212
-    fi
213
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
214
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
215
-    fi
216
-    if grep -q "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE; then
217
-        MEDIAGOBLIN_DOMAIN_NAME=$(grep "MEDIAGOBLIN_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
218
-    fi
219
-    if grep -q "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE; then
220
-        MEDIAGOBLIN_CODE=$(grep "MEDIAGOBLIN_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
221
-    fi
222
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
223
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
224
-    fi
225
-
226
     if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
180
     if [ ! $MEDIAGOBLIN_DOMAIN_NAME ]; then
227
         return
181
         return
228
     fi
182
     fi

+ 6
- 0
src/freedombone-app-mumble 查看文件

39
 MUMBLE_DATABASE="mumble-server.sqlite"
39
 MUMBLE_DATABASE="mumble-server.sqlite"
40
 MUMBLE_CONFIG_FILE="mumble-server.ini"
40
 MUMBLE_CONFIG_FILE="mumble-server.ini"
41
 
41
 
42
+mumble_variables=(MY_USERNAME
43
+                  MUMBLE_PORT
44
+                  MUMBLE_SERVER_PASSWORD
45
+                  ONION_ONLY
46
+                  ADMIN_USERNAME)
47
+
42
 function install_interactive_mumble {
48
 function install_interactive_mumble {
43
     echo -n ''
49
     echo -n ''
44
 }
50
 }

+ 62
- 81
src/freedombone-app-rss 查看文件

42
 RSS_READER_GNUSOCIAL_REPO="https://github.com/bashrc/ttrss-gnusocial"
42
 RSS_READER_GNUSOCIAL_REPO="https://github.com/bashrc/ttrss-gnusocial"
43
 RSS_READER_GNUSOCIAL_COMMIT='20b2535e3f2b0ddc0117b584bdcaa6bf7a2d9fa2'
43
 RSS_READER_GNUSOCIAL_COMMIT='20b2535e3f2b0ddc0117b584bdcaa6bf7a2d9fa2'
44
 
44
 
45
+rss_variables=(RSS_READER_REPO
46
+               RSS_MOBILE_READER_REPO
47
+               RSS_READER_COMMIT
48
+               RSS_MOBILE_READER_COMMIT
49
+               RSS_READER_ADMIN_PASSWORD
50
+               RSS_READER_DOMAIN_NAME
51
+               USB_MOUNT
52
+               MY_USERNAME)
53
+
45
 function install_interactive_rss {
54
 function install_interactive_rss {
46
     echo -n ''
55
     echo -n ''
47
 }
56
 }
81
 }
90
 }
82
 
91
 
83
 function upgrade_rss {
92
 function upgrade_rss {
84
-    if grep -Fxq "install_rss" $COMPLETION_FILE; then
93
+    if [[ $(app_is_installed rss) == "1" ]]; then
85
         function_check set_repo_commit
94
         function_check set_repo_commit
86
         set_repo_commit $RSS_READER_PATH "rss reader commit" "$RSS_READER_COMMIT" $RSS_READER_REPO
95
         set_repo_commit $RSS_READER_PATH "rss reader commit" "$RSS_READER_COMMIT" $RSS_READER_REPO
87
         function_check rss_modifications
96
         function_check rss_modifications
88
         rss_modifications
97
         rss_modifications
89
     fi
98
     fi
90
 
99
 
91
-    if grep -Fxq "install_rss_mobile_reader" $COMPLETION_FILE; then
100
+    if [[ $(app_is_installed rss_mobile_reader) == "1" ]]; then
92
         if [ ! $RSS_READER_PATH ]; then
101
         if [ ! $RSS_READER_PATH ]; then
93
             RSS_READER_PATH=/etc/share/tt-rss
102
             RSS_READER_PATH=/etc/share/tt-rss
94
         fi
103
         fi
116
 }
125
 }
117
 
126
 
118
 function backup_local_rss {
127
 function backup_local_rss {
119
-    RSS_READER_DOMAIN_NAME='ttrss'
120
-    if grep -q "rss reader domain" $COMPLETION_FILE; then
128
+    if [ -d /etc/share/tt-rss ]; then
121
         RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
129
         RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
122
-    fi
123
-
124
-    if grep -q "rss reader domain" $COMPLETION_FILE; then
125
-        if [ -d /etc/share/tt-rss ]; then
126
-            RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
127
 
130
 
128
-            echo $"Backing up ttrss"
131
+        echo $"Backing up ttrss"
129
 
132
 
130
-            function_check backup_database_to_usb
131
-            backup_database_to_usb ttrss
133
+        function_check backup_database_to_usb
134
+        backup_database_to_usb ttrss
132
 
135
 
133
-            backup_directory_to_usb /etc/share/tt-rss ttrss
136
+        backup_directory_to_usb /etc/share/tt-rss ttrss
134
 
137
 
135
-            echo $"ttrss backup complete"
136
-        fi
138
+        echo $"ttrss backup complete"
137
     fi
139
     fi
138
 }
140
 }
139
 
141
 
140
 function restore_local_rss {
142
 function restore_local_rss {
141
-    if ! grep -q "rss reader domain" $COMPLETION_FILE; then
142
-        return
143
-    fi
144
-    RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
145
-    if [ $RSS_READER_DOMAIN_NAME ]; then
146
-        echo $"Restoring ttrss"
147
-        temp_restore_dir=/root/tempttrss
143
+    temp_restore_dir=/root/tempttrss
148
 
144
 
149
-        function_check rss_create_database
150
-        rss_create_database
145
+    function_check rss_create_database
146
+    rss_create_database
151
 
147
 
152
-        restore_database ttrss ${RSS_READER_DOMAIN_NAME}
148
+    restore_database ttrss ${RSS_READER_DOMAIN_NAME}
153
 
149
 
154
-        if [ -d /etc/share/tt-rss ]; then
155
-            if [ -d /root/tempttrss/etc/share/tt-rss ]; then
156
-                rm -rf /etc/share/tt-rss
157
-                mv /root/tempttrss/etc/share/tt-rss /etc/share/
158
-                if [ ! "$?" = "0" ]; then
159
-                    function_check set_user_permissions
160
-                    set_user_permissions
161
-
162
-                    function_check backup_unmount_drive
163
-                    backup_unmount_drive
164
-                    exit 528823
165
-                fi
166
-                if [ -d /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME} ]; then
167
-                    ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${2}.key
168
-                    ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${2}.pem
169
-                else
170
-                    # Ensure that the bundled SSL cert is being used
171
-                    if [ -f /etc/ssl/certs/${RSS_READER_DOMAIN_NAME}.bundle.crt ]; then
172
-                        sed -i "s|${RSS_READER_DOMAIN_NAME}.crt|${RSS_READER_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${2}
173
-                    fi
150
+    if [ -d /etc/share/tt-rss ]; then
151
+        if [ -d /root/tempttrss/etc/share/tt-rss ]; then
152
+            rm -rf /etc/share/tt-rss
153
+            mv /root/tempttrss/etc/share/tt-rss /etc/share/
154
+            if [ ! "$?" = "0" ]; then
155
+                function_check set_user_permissions
156
+                set_user_permissions
157
+
158
+                function_check backup_unmount_drive
159
+                backup_unmount_drive
160
+                exit 528823
161
+            fi
162
+            if [ -d /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME} ]; then
163
+                ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/privkey.pem /etc/ssl/private/${2}.key
164
+                ln -s /etc/letsencrypt/live/${RSS_READER_DOMAIN_NAME}/fullchain.pem /etc/ssl/certs/${2}.pem
165
+            else
166
+                # Ensure that the bundled SSL cert is being used
167
+                if [ -f /etc/ssl/certs/${RSS_READER_DOMAIN_NAME}.bundle.crt ]; then
168
+                    sed -i "s|${RSS_READER_DOMAIN_NAME}.crt|${RSS_READER_DOMAIN_NAME}.bundle.crt|g" /etc/nginx/sites-available/${2}
174
                 fi
169
                 fi
175
             fi
170
             fi
176
         fi
171
         fi
172
+    fi
177
 
173
 
178
-        function_check rss_modifications
179
-        rss_modifications
174
+    function_check rss_modifications
175
+    rss_modifications
180
 
176
 
181
-        if [ -d $USB_MOUNT/backup/ttrss ]; then
182
-            chown -R www-data:www-data /etc/share/tt-rss
183
-            if [ -d $temp_restore_dir ]; then
184
-                rm -rf $temp_restore_dir
185
-            fi
177
+    if [ -d $USB_MOUNT/backup/ttrss ]; then
178
+        chown -R www-data:www-data /etc/share/tt-rss
179
+        if [ -d $temp_restore_dir ]; then
180
+            rm -rf $temp_restore_dir
186
         fi
181
         fi
187
-        echo $"Restore of ttrss complete"
188
     fi
182
     fi
189
 }
183
 }
190
 
184
 
191
 function backup_remote_rss {
185
 function backup_remote_rss {
192
-    if grep -q "rss reader domain" $COMPLETION_FILE; then
193
-        RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
194
-        if [ -d /etc/share/tt-rss ]; then
195
-            function_check suspend_site
196
-            suspend_site ${RSS_READER_DOMAIN_NAME}
186
+    if [ -d /etc/share/tt-rss ]; then
187
+        function_check suspend_site
188
+        suspend_site ${RSS_READER_DOMAIN_NAME}
197
 
189
 
198
-            function_check backup_database_to_friend
199
-            backup_database_to_friend ttrss
190
+        function_check backup_database_to_friend
191
+        backup_database_to_friend ttrss
200
 
192
 
201
-            echo $"Backing up RSS reader installation"
193
+        echo $"Backing up RSS reader installation"
202
 
194
 
203
-            function_check backup_directory_to_friend
204
-            backup_directory_to_friend /etc/share/tt-rss ttrss
195
+        function_check backup_directory_to_friend
196
+        backup_directory_to_friend /etc/share/tt-rss ttrss
205
 
197
 
206
-            function_check restart_site
207
-            restart_site
208
-        else
209
-            echo $"RSS reader domain specified but not found in /etc/share/ttrss}"
210
-        fi
198
+        function_check restart_site
199
+        restart_site
200
+    else
201
+        echo $"RSS reader domain specified but not found in /etc/share/ttrss}"
211
     fi
202
     fi
212
 }
203
 }
213
 
204
 
214
 function restore_remote_rss {
205
 function restore_remote_rss {
215
     if grep -q "rss reader domain" $COMPLETION_FILE; then
206
     if grep -q "rss reader domain" $COMPLETION_FILE; then
216
         echo $"Restoring ttrss"
207
         echo $"Restoring ttrss"
217
-        RSS_READER_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "rss reader domain" | awk -F ':' '{print $2}')
218
         function_check restore_database_from_friend
208
         function_check restore_database_from_friend
219
 
209
 
220
         function_check rss_create_database
210
         function_check rss_create_database
256
     if [[ $(app_is_installed rss) == "0" ]]; then
246
     if [[ $(app_is_installed rss) == "0" ]]; then
257
         return
247
         return
258
     fi
248
     fi
259
-    if grep -q "RSS_READER_DOMAIN_NAME" $CONFIGURATION_FILE; then
260
-        RSS_READER_DOMAIN_NAME=$(grep "RSS_READER_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
261
-    fi
262
     nginx_dissite $RSS_READER_DOMAIN_NAME
249
     nginx_dissite $RSS_READER_DOMAIN_NAME
263
     function_check remove_onion_service
250
     function_check remove_onion_service
264
     remove_onion_service ttrss ${RSS_READER_ONION_PORT} ${RSS_MOBILE_READER_ONION_PORT}
251
     remove_onion_service ttrss ${RSS_READER_ONION_PORT} ${RSS_MOBILE_READER_ONION_PORT}
292
 }
279
 }
293
 
280
 
294
 function install_rss_main {
281
 function install_rss_main {
295
-    if grep -Fxq "install_rss_main" $COMPLETION_FILE; then
296
-        return
297
-    fi
298
-
299
     apt-get -y install php-gettext php5-curl php5-gd php5-mysql git
282
     apt-get -y install php-gettext php5-curl php5-gd php5-mysql git
300
     apt-get -y install curl php-xml-parser php5-mcrypt
283
     apt-get -y install curl php-xml-parser php5-mcrypt
301
 
284
 
520
         chmod 600 /home/$MY_USERNAME/README
503
         chmod 600 /home/$MY_USERNAME/README
521
     fi
504
     fi
522
 
505
 
523
-    echo 'install_rss_main' >> $COMPLETION_FILE
506
+    install_completed rss_main
524
 }
507
 }
525
 
508
 
526
 function install_rss_gnusocial {
509
 function install_rss_gnusocial {
560
         echo "rss reader gnusocial commit:$RSS_READER_GNUSOCIAL_COMMIT" >> $COMPLETION_FILE
543
         echo "rss reader gnusocial commit:$RSS_READER_GNUSOCIAL_COMMIT" >> $COMPLETION_FILE
561
     fi
544
     fi
562
     chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
545
     chown -R www-data:www-data $RSS_READER_GNUSOCIAL_PATH
563
-
564
-    echo 'install_rss_gnusocial' >> $COMPLETION_FILE
546
+    install_completed rss_gnusocial
565
 }
547
 }
566
 
548
 
567
 function install_rss_mobile_reader {
549
 function install_rss_mobile_reader {
612
     chown -R www-data:www-data $RSS_MOBILE_READER_PATH
594
     chown -R www-data:www-data $RSS_MOBILE_READER_PATH
613
     chown -R www-data:www-data $RSS_READER_PATH
595
     chown -R www-data:www-data $RSS_READER_PATH
614
     chmod a+x $RSS_MOBILE_READER_PATH
596
     chmod a+x $RSS_MOBILE_READER_PATH
615
-
616
-    echo 'install_rss_mobile_reader' >> $COMPLETION_FILE
597
+    install_completed rss_mobile_reader
617
 }
598
 }
618
 
599
 
619
 function install_rss {
600
 function install_rss {

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

38
 SEARX_LOGIN_TEXT=$"Search engine login"
38
 SEARX_LOGIN_TEXT=$"Search engine login"
39
 SEARX_PASSWORD=
39
 SEARX_PASSWORD=
40
 
40
 
41
+searx_variables=(SEARX_REPO
42
+                 SEARX_COMMIT
43
+                 SEARX_PATH
44
+                 SEARX_LOGIN_TEXT
45
+                 MY_USERNAME
46
+                 SYSTEM_TYPE)
47
+
41
 function install_interactive_searx {
48
 function install_interactive_searx {
42
     echo -n ''
49
     echo -n ''
43
 }
50
 }

+ 13
- 0
src/freedombone-app-sip 查看文件

33
 SIP_SERVER_PASSWORD=
33
 SIP_SERVER_PASSWORD=
34
 SIP_PORT=5060
34
 SIP_PORT=5060
35
 SIP_TLS_PORT=5061
35
 SIP_TLS_PORT=5061
36
+
36
 TURN_PORT=3478
37
 TURN_PORT=3478
37
 TURN_TLS_PORT=5349
38
 TURN_TLS_PORT=5349
38
 TURN_NONCE=
39
 TURN_NONCE=
39
 
40
 
41
+sip_variables=(ONION_ONLY
42
+               MY_USERNAME
43
+               SIP_PORT
44
+               SIP_TLS_PORT
45
+               SIP_SERVER_PASSWORD
46
+               TURN_PORT
47
+               TURN_TLS_PORT
48
+               TURN_NONCE)
49
+
40
 function remove_user_sip {
50
 function remove_user_sip {
41
     remove_username="$1"
51
     remove_username="$1"
42
     ${PROJECT_NAME}-rmsipuser ${remove_username}
52
     ${PROJECT_NAME}-rmsipuser ${remove_username}
147
     if [[ $(app_is_installed sip) == "0" ]]; then
157
     if [[ $(app_is_installed sip) == "0" ]]; then
148
         return
158
         return
149
     fi
159
     fi
160
+
150
     iptables -D INPUT -p udp --dport $TURN_PORT -j ACCEPT
161
     iptables -D INPUT -p udp --dport $TURN_PORT -j ACCEPT
151
     iptables -D INPUT -p tcp --dport $TURN_PORT -j ACCEPT
162
     iptables -D INPUT -p tcp --dport $TURN_PORT -j ACCEPT
152
     iptables -D INPUT -p tcp --dport $TURN_TLS_PORT -j ACCEPT
163
     iptables -D INPUT -p tcp --dport $TURN_TLS_PORT -j ACCEPT
164
+
153
     iptables -D INPUT -p udp --dport $SIP_PORT -j ACCEPT
165
     iptables -D INPUT -p udp --dport $SIP_PORT -j ACCEPT
154
     iptables -D INPUT -p tcp --dport $SIP_PORT -j ACCEPT
166
     iptables -D INPUT -p tcp --dport $SIP_PORT -j ACCEPT
155
     iptables -D INPUT -p udp --dport $SIP_TLS_PORT -j ACCEPT
167
     iptables -D INPUT -p udp --dport $SIP_TLS_PORT -j ACCEPT
225
     if [ ! -f /etc/init.d/sipwitch ]; then
237
     if [ ! -f /etc/init.d/sipwitch ]; then
226
         return
238
         return
227
     fi
239
     fi
240
+
228
     service sipwitch stop
241
     service sipwitch stop
229
 
242
 
230
     # remove the original sipwitch daemon if it exists
243
     # remove the original sipwitch daemon if it exists

+ 10
- 0
src/freedombone-app-syncthing 查看文件

39
 SYNCTHING_SHARED_DATA=/var/lib/syncthing/SyncShared
39
 SYNCTHING_SHARED_DATA=/var/lib/syncthing/SyncShared
40
 SYNCTHING_USER_IDS_FILE='.syncthingids'
40
 SYNCTHING_USER_IDS_FILE='.syncthingids'
41
 
41
 
42
+syncthing_variables=(SYNCTHING_ID
43
+                     SYNCTHING_CONFIG_PATH
44
+                     SYNCTHING_CONFIG_FILE
45
+                     SYNCTHING_RELAY_SERVER
46
+                     SYNCTHING_RELEASES
47
+                     SYNCTHING_PORT
48
+                     SYNCTHING_SHARED_DATA
49
+                     USB_MOUNT)
50
+
42
 function syncthing_create_ids_file {
51
 function syncthing_create_ids_file {
43
     if [ ! -f ~/.syncthing-server-id ]; then
52
     if [ ! -f ~/.syncthing-server-id ]; then
44
         return
53
         return
472
     if grep -Fxq "configure_firewall_for_syncthing" $COMPLETION_FILE; then
481
     if grep -Fxq "configure_firewall_for_syncthing" $COMPLETION_FILE; then
473
         return
482
         return
474
     fi
483
     fi
484
+
475
     iptables -A INPUT -p udp --dport $SYNCTHING_PORT -j ACCEPT
485
     iptables -A INPUT -p udp --dport $SYNCTHING_PORT -j ACCEPT
476
     iptables -A INPUT -p tcp --dport $SYNCTHING_PORT -j ACCEPT
486
     iptables -A INPUT -p tcp --dport $SYNCTHING_PORT -j ACCEPT
477
     function_check save_firewall_settings
487
     function_check save_firewall_settings

+ 5
- 1
src/freedombone-app-tahoelafs 查看文件

39
 TAHOELAFS_SHARED_DIR='Shared'
39
 TAHOELAFS_SHARED_DIR='Shared'
40
 TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
40
 TAHOE_COMMAND="cd /var/lib/tahoelafs && venv/bin/tahoe"
41
 
41
 
42
+tahoelafs_variables=(TAHOELAFS_REPO
43
+                     TAHOELAFS_COMMIT
44
+                     TAHOELAFS_PORT)
45
+
42
 function install_interactive_tahoelafs {
46
 function install_interactive_tahoelafs {
43
     echo -n ''
47
     echo -n ''
44
 }
48
 }
147
 }
151
 }
148
 
152
 
149
 function backup_remote_tahoelafs {
153
 function backup_remote_tahoelafs {
150
-   source_directory=/home/tahoelafs/.tahoe-introducer
154
+    source_directory=/home/tahoelafs/.tahoe-introducer
151
     if [ ! -d $source_directory ]; then
155
     if [ ! -d $source_directory ]; then
152
         return
156
         return
153
     fi
157
     fi

+ 10
- 0
src/freedombone-app-tox 查看文件

49
 QTOX_REPO="https://github.com/bashrc/qTox"
49
 QTOX_REPO="https://github.com/bashrc/qTox"
50
 QTOX_COMMIT='27a628a3789fca4f31516c3982e580052dd3c773'
50
 QTOX_COMMIT='27a628a3789fca4f31516c3982e580052dd3c773'
51
 
51
 
52
+tox_variables=(SYSTEM_TYPE
53
+               TOXCORE_REPO
54
+               TOXCORE_COMMIT
55
+               TOXIC_COMMIT
56
+               MY_USERNAME
57
+               ONION_ONLY
58
+               INSTALLED_WITHIN_DOCKER
59
+               TOX_PORT
60
+               TOX_NODES)
61
+
52
 function remove_user_tox {
62
 function remove_user_tox {
53
     remove_username="$1"
63
     remove_username="$1"
54
 
64
 

+ 2
- 0
src/freedombone-app-vpn 查看文件

30
 
30
 
31
 VARIANTS=''
31
 VARIANTS=''
32
 
32
 
33
+vpn_variables=()
34
+
33
 function install_interactive_vpn {
35
 function install_interactive_vpn {
34
     echo -n ''
36
     echo -n ''
35
 }
37
 }

+ 6
- 0
src/freedombone-app-webmail 查看文件

38
 WEB_PATH=/var/www
38
 WEB_PATH=/var/www
39
 WEBMAIL_PATH=$WEB_PATH/webmail
39
 WEBMAIL_PATH=$WEB_PATH/webmail
40
 
40
 
41
+webmail_variables=(WEBMAIL_REPO
42
+                   WEBMAIL_COMMIT
43
+                   MY_USERNAME
44
+                   ONION_ONLY
45
+                   DEFAULT_DOMAIN_NAME)
46
+
41
 function install_interactive_webmail {
47
 function install_interactive_webmail {
42
     echo -n ''
48
     echo -n ''
43
 }
49
 }

+ 7
- 38
src/freedombone-app-wiki 查看文件

36
 WIKI_CODE=
36
 WIKI_CODE=
37
 WIKI_ONION_PORT=8089
37
 WIKI_ONION_PORT=8089
38
 
38
 
39
-function install_interactive_wiki {
40
-    if [ ! $ONION_ONLY ]; then
41
-        ONION_ONLY='no'
42
-    fi
43
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
44
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
45
-    fi
46
-    if grep -q "WIKI_TITLE" $CONFIGURATION_FILE; then
47
-        WIKI_TITLE=$(grep "WIKI_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
48
-    fi
49
-    if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
50
-        WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
51
-    fi
52
-    if grep -q "WIKI_CODE" $CONFIGURATION_FILE; then
53
-        WIKI_CODE=$(grep "WIKI_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
54
-    fi
55
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
56
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
57
-    fi
39
+wiki_variables=(ONION_ONLY
40
+                MY_USERNAME
41
+                WIKI_TITLE
42
+                WIKI_DOMAIN_NAME
43
+                WIKI_CODE
44
+                DDNS_PROVIDER)
58
 
45
 
46
+function install_interactive_wiki {
59
     if [[ $ONION_ONLY != "no" ]]; then
47
     if [[ $ONION_ONLY != "no" ]]; then
60
         WIKI_TITLE=$'My Wiki'
48
         WIKI_TITLE=$'My Wiki'
61
         WIKI_DOMAIN_NAME='wiki.local'
49
         WIKI_DOMAIN_NAME='wiki.local'
270
 }
258
 }
271
 
259
 
272
 function install_wiki {
260
 function install_wiki {
273
-    if [ ! $ONION_ONLY ]; then
274
-        ONION_ONLY='no'
275
-    fi
276
-    if grep -q "ONION_ONLY" $CONFIGURATION_FILE; then
277
-        ONION_ONLY=$(grep "ONION_ONLY" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
278
-    fi
279
-    if grep -q "WIKI_TITLE" $CONFIGURATION_FILE; then
280
-        WIKI_TITLE=$(grep "WIKI_TITLE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
281
-    fi
282
-    if grep -q "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE; then
283
-        WIKI_DOMAIN_NAME=$(grep "WIKI_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
284
-    fi
285
-    if grep -q "WIKI_CODE" $CONFIGURATION_FILE; then
286
-        WIKI_CODE=$(grep "WIKI_CODE" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
287
-    fi
288
-    if grep -q "DDNS_PROVIDER" $CONFIGURATION_FILE; then
289
-        DDNS_PROVIDER=$(grep "DDNS_PROVIDER" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
290
-    fi
291
-
292
     if [ ! $WIKI_DOMAIN_NAME ]; then
261
     if [ ! $WIKI_DOMAIN_NAME ]; then
293
         return
262
         return
294
     fi
263
     fi

+ 8
- 0
src/freedombone-app-xmpp 查看文件

37
 XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
37
 XMPP_CIPHERS='"EDH+CAMELLIA:EDH+aRSA:EECDH+aRSA+AESGCM:EECDH+aRSA+SHA256:EECDH:+CAMELLIA128:+AES128:+SSLv3:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!DSS:!RC4:!SEED:!IDEA:!ECDSA:kEDH:CAMELLIA128-SHA:AES128-SHA"'
38
 XMPP_ECC_CURVE='"secp384r1"'
38
 XMPP_ECC_CURVE='"secp384r1"'
39
 
39
 
40
+xmpp_variables=(ONION_ONLY
41
+                INSTALLED_WITHIN_DOCKER
42
+                XMPP_CIPHERS
43
+                XMPP_ECC_CURVE
44
+                XMPP_ECC_CURVE
45
+                MY_USERNAME
46
+                DEFAULT_DOMAIN_NAME)
47
+
40
 function remove_user_xmpp {
48
 function remove_user_xmpp {
41
     remove_username="$1"
49
     remove_username="$1"
42
     ${PROJECT_NAME}-rmxmpp -e "${remove_username}@$HOSTNAME"
50
     ${PROJECT_NAME}-rmxmpp -e "${remove_username}@$HOSTNAME"

+ 10
- 0
src/freedombone-app-zeronet 查看文件

49
 ZERONET_ID_REPO="https://github.com/HelloZeroNet/ZeroID"
49
 ZERONET_ID_REPO="https://github.com/HelloZeroNet/ZeroID"
50
 ZERONET_ID_COMMIT='ccf14fdc96fa9cdb2ddd8a7ab283a8e17a4f234b'
50
 ZERONET_ID_COMMIT='ccf14fdc96fa9cdb2ddd8a7ab283a8e17a4f234b'
51
 
51
 
52
+zeronet_variables=(ZERONET_BLOG_COMMIT
53
+                   ZERONET_MAIL_COMMIT
54
+                   ZERONET_FORUM_COMMIT
55
+                   TRACKER_PORT
56
+                   ZERONET_PORT
57
+                   MY_USERNAME
58
+                   ZERONET_DEFAULT_BLOG_TAGLINE
59
+                   ZERONET_DEFAULT_FORUM_TAGLINE
60
+                   ZERONET_DEFAULT_MAIL_TAGLINE)
61
+
52
 function install_interactive_zeronet {
62
 function install_interactive_zeronet {
53
     echo -n ''
63
     echo -n ''
54
 }
64
 }

+ 1
- 0
src/freedombone-rmuser 查看文件

115
 do
115
 do
116
     if [[ $(function_exists remove_user_${app_name}) == "1" ]]; then
116
     if [[ $(function_exists remove_user_${app_name}) == "1" ]]; then
117
         echo $"Removing user from ${app_name}"
117
         echo $"Removing user from ${app_name}"
118
+        app_load_variables ${app_name}
118
         remove_user_${app_name} "$MY_USERNAME"
119
         remove_user_${app_name} "$MY_USERNAME"
119
     fi
120
     fi
120
 done
121
 done

+ 2
- 0
src/freedombone-utils-backup 查看文件

374
     for app_name in "${APPS_INSTALLED_NAMES[@]}"
374
     for app_name in "${APPS_INSTALLED_NAMES[@]}"
375
     do
375
     do
376
         echo $"Backup ${app_name}"
376
         echo $"Backup ${app_name}"
377
+        app_load_variables ${app_name}
377
         function_check backup_${localremote}_${app_name}
378
         function_check backup_${localremote}_${app_name}
378
         backup_${localremote}_${app_name}
379
         backup_${localremote}_${app_name}
379
         BACKUP_APPS_COMPLETED+=("${app_name}")
380
         BACKUP_APPS_COMPLETED+=("${app_name}")
392
     for app_name in "${APPS_INSTALLED_NAMES[@]}"
393
     for app_name in "${APPS_INSTALLED_NAMES[@]}"
393
     do
394
     do
394
         echo $"Restoring ${app_name}"
395
         echo $"Restoring ${app_name}"
396
+        app_load_variables ${app_name}
395
         function_check restore_${localremote}_${app_name}
397
         function_check restore_${localremote}_${app_name}
396
         restore_${localremote}_${app_name}
398
         restore_${localremote}_${app_name}
397
         RESTORE_APPS_COMPLETED+=("${app_name}")
399
         RESTORE_APPS_COMPLETED+=("${app_name}")

+ 5
- 95
src/freedombone-utils-config 查看文件

97
         read_config_param "INSTALLING_ON_BBB"
97
         read_config_param "INSTALLING_ON_BBB"
98
         read_config_param "SSH_PORT"
98
         read_config_param "SSH_PORT"
99
         read_config_param "INSTALLED_WITHIN_DOCKER"
99
         read_config_param "INSTALLED_WITHIN_DOCKER"
100
-read_config_param "GPG_ENCRYPT_STORED_EMAIL"
100
+        read_config_param "GPG_ENCRYPT_STORED_EMAIL"
101
         read_config_param "MY_GPG_PUBLIC_KEY"
101
         read_config_param "MY_GPG_PUBLIC_KEY"
102
         read_config_param "MY_GPG_PRIVATE_KEY"
102
         read_config_param "MY_GPG_PRIVATE_KEY"
103
         read_config_param "MY_GPG_PUBLIC_KEY_ID"
103
         read_config_param "MY_GPG_PUBLIC_KEY_ID"
105
         read_config_param "MAX_PHP_MEMORY"
105
         read_config_param "MAX_PHP_MEMORY"
106
         read_config_param "TLS_TIME_SOURCE1"
106
         read_config_param "TLS_TIME_SOURCE1"
107
         read_config_param "TLS_TIME_SOURCE2"
107
         read_config_param "TLS_TIME_SOURCE2"
108
-
109
-        read_config_param "WEBMAIL_REPO"
110
-        read_config_param "WEBMAIL_COMMIT"
108
+        read_config_param "ONION_ONLY"
109
+        read_config_param "DEFAULT_LANGUAGE"
110
+        read_config_param "MINIMAL_INSTALL"
111
+        read_config_param "LETSENCRYPT_SERVER"
111
 
112
 
112
         read_config_param "WIFI_INTERFACE"
113
         read_config_param "WIFI_INTERFACE"
113
         read_config_param "WIFI_SSID"
114
         read_config_param "WIFI_SSID"
116
         read_config_param "WIFI_HOTSPOT"
117
         read_config_param "WIFI_HOTSPOT"
117
         read_config_param "WIFI_NETWORKS_FILE"
118
         read_config_param "WIFI_NETWORKS_FILE"
118
 
119
 
119
-        read_config_param "SYNCTHING_ID"
120
-        read_config_param "SYNCTHING_CONFIG_PATH"
121
-        read_config_param "SYNCTHING_CONFIG_FILE"
122
-        read_config_param "SYNCTHING_RELAY_SERVER"
123
-        read_config_param "SYNCTHING_RELEASES"
124
-        read_config_param "SYNCTHING_PORT"
125
-        read_config_param "SYNCTHING_SHARED_DATA"
126
-
127
-        read_config_param "TURN_PORT"
128
-        read_config_param "TURN_TLS_PORT"
129
-        read_config_param "TURN_NONCE"
130
-
131
         read_config_param "DEFAULT_SEARCH"
120
         read_config_param "DEFAULT_SEARCH"
132
         read_config_param "SEARCH_ENGINE_PASSWORD"
121
         read_config_param "SEARCH_ENGINE_PASSWORD"
133
 
122
 
134
-        read_config_param "XMPP_PASSWORD"
135
-
136
-        read_config_param "RSS_READER_REPO"
137
-        read_config_param "RSS_MOBILE_READER_REPO"
138
-        read_config_param "RSS_READER_COMMIT"
139
-        read_config_param "RSS_MOBILE_READER_COMMIT"
140
-        read_config_param "RSS_READER_ADMIN_PASSWORD"
141
-        read_config_param "RSS_READER_DOMAIN_NAME"
142
-
143
         read_config_param "PROJECT_WEBSITE"
123
         read_config_param "PROJECT_WEBSITE"
144
         read_config_param "PROJECT_REPO"
124
         read_config_param "PROJECT_REPO"
145
 
125
 
146
-        read_config_param "ONION_ONLY"
147
-        read_config_param "DEFAULT_LANGUAGE"
148
-        read_config_param "MINIMAL_INSTALL"
149
-        read_config_param "LETSENCRYPT_SERVER"
150
-
151
-        read_config_param "FULLBLOG_REPO"
152
-        read_config_param "FULLBLOG_COMMIT"
153
-
154
-        read_config_param "IRC_PORT"
155
-        read_config_param "IRC_PASSWORD"
156
-
157
-        read_config_param "GOGS_COMMIT"
158
-        read_config_param "GIT_ADMIN_PASSWORD"
159
-        read_config_param "GIT_DOMAIN_NAME"
160
-        read_config_param "GIT_CODE"
161
-
162
-        read_config_param "TOXCORE_COMMIT"
163
-        read_config_param "TOXIC_COMMIT"
164
-
165
         read_config_param "GPGIT_REPO"
126
         read_config_param "GPGIT_REPO"
166
         read_config_param "GPGIT_COMMIT"
127
         read_config_param "GPGIT_COMMIT"
167
 
128
 
168
-        read_config_param "HUBZILLA_REPO"
169
-        read_config_param "HUBZILLA_COMMIT"
170
-        read_config_param "HUBZILLA_DOMAIN_NAME"
171
-        read_config_param "HUBZILLA_CODE"
172
-
173
-        read_config_param "IPFS_COMMIT"
174
-
175
-        read_config_param "ZERONET_BLOG_COMMIT"
176
-        read_config_param "ZERONET_MAIL_COMMIT"
177
-        read_config_param "ZERONET_FORUM_COMMIT"
178
-        read_config_param "TRACKER_PORT"
179
-        read_config_param "ZERONET_PORT"
180
-
181
         read_config_param "NGINX_ENSITE_REPO"
129
         read_config_param "NGINX_ENSITE_REPO"
182
         read_config_param "NGINX_ENSITE_REPO"
130
         read_config_param "NGINX_ENSITE_REPO"
183
         read_config_param "NGINX_ENSITE_COMMIT"
131
         read_config_param "NGINX_ENSITE_COMMIT"
185
         read_config_param "CLEANUP_MAILDIR_COMMIT"
133
         read_config_param "CLEANUP_MAILDIR_COMMIT"
186
         read_config_param "CLEANUP_MAILDIR_REPO"
134
         read_config_param "CLEANUP_MAILDIR_REPO"
187
 
135
 
188
-        read_config_param "ZERONET_COMMIT"
189
-
190
         read_config_param "INADYN_REPO"
136
         read_config_param "INADYN_REPO"
191
         read_config_param "INADYN_COMMIT"
137
         read_config_param "INADYN_COMMIT"
192
 
138
 
193
-        read_config_param "IPFS_PORT"
194
-
195
         read_config_param "DH_KEYLENGTH"
139
         read_config_param "DH_KEYLENGTH"
196
         read_config_param "WIFI_CHANNEL"
140
         read_config_param "WIFI_CHANNEL"
197
-        read_config_param "BATMAN_CELLID"
198
-
199
-        read_config_param "TOX_PORT"
200
-        read_config_param "TOX_NODES"
201
-        read_config_param "TOXCORE_REPO"
202
 
141
 
203
         read_config_param "IPV6_NETWORK"
142
         read_config_param "IPV6_NETWORK"
204
         read_config_param "HWRNG_TYPE"
143
         read_config_param "HWRNG_TYPE"
205
 
144
 
206
-        read_config_param "MEDIAGOBLIN_DOMAIN_NAME"
207
-        read_config_param "MEDIAGOBLIN_CODE"
208
-        read_config_param "MEDIAGOBLIN_REPO"
209
-        read_config_param "MEDIAGOBLIN_COMMIT"
210
-
211
-        read_config_param "XMPP_CIPHERS"
212
-        read_config_param "XMPP_ECC_CURVE"
213
-
214
-        read_config_param "MUMBLE_PORT"
215
-        read_config_param "MUMBLE_SERVER_PASSWORD"
216
-
217
-        read_config_param "SIP_PORT"
218
-        read_config_param "SIP_TLS_PORT"
219
-        read_config_param "SIP_SERVER_PASSWORD"
220
-
221
         read_config_param "ENABLE_BABEL"
145
         read_config_param "ENABLE_BABEL"
222
         read_config_param "ENABLE_BATMAN"
146
         read_config_param "ENABLE_BATMAN"
223
         read_config_param "ENABLE_CJDNS"
147
         read_config_param "ENABLE_CJDNS"
224
 
148
 
225
-        read_config_param "CJDNS_COMMIT"
226
-        read_config_param "CJDNS_IPV6"
227
-        read_config_param "CJDNS_PUBLIC_KEY"
228
-        read_config_param "CJDNS_PRIVATE_KEY"
229
-
230
-        read_config_param "WIKI_TITLE"
231
-        read_config_param "WIKI_DOMAIN_NAME"
232
-        read_config_param "WIKI_CODE"
233
-
234
         read_config_param "PUBLIC_MAILING_LIST"
149
         read_config_param "PUBLIC_MAILING_LIST"
235
 
150
 
236
-        read_config_param "FULLBLOG_DOMAIN_NAME"
237
-        read_config_param "FULLBLOG_CODE"
238
-        read_config_param "MY_BLOG_TITLE"
239
-        read_config_param "MY_BLOG_SUBTITLE"
240
-
241
         if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
151
         if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
242
             DEBIAN_REPO=$(grep "DEBIAN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
152
             DEBIAN_REPO=$(grep "DEBIAN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
243
             CHECK_MESSAGE=$"Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."
153
             CHECK_MESSAGE=$"Check your internet connection, /etc/network/interfaces and /etc/resolv.conf, then delete $COMPLETION_FILE, run 'rm -fR /var/lib/apt/lists/* && apt-get update --fix-missing' and run this script again. If hash sum mismatches persist then try setting $DEBIAN_REPO to a different mirror and also change /etc/apt/sources.list."

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

43
 # file containing a list of removed apps
43
 # file containing a list of removed apps
44
 REMOVED_APPS_FILE=/root/removed
44
 REMOVED_APPS_FILE=/root/removed
45
 
45
 
46
+# Loads variables defined at the beginning of an app script
47
+function app_load_variables {
48
+    app_name=$1
49
+
50
+    var_name=${app_name}_variables
51
+    if [ ! $var_name ]; then
52
+        return
53
+    fi
54
+
55
+    for v in "${$var_name[@]}"
56
+    do
57
+        read_config_param $v
58
+    done
59
+}
60
+
61
+# Saves variables for a given app script
62
+function app_save_variables {
63
+    app_name=$1
64
+
65
+    var_name=${app_name}_variables
66
+    if [ ! $var_name ]; then
67
+        return
68
+    fi
69
+
70
+    for v in "${$var_name[@]}"
71
+    do
72
+        save_config_param $v "$$v"
73
+    done
74
+}
75
+
46
 # gets the variants list from an app script
76
 # gets the variants list from an app script
47
 function app_variants {
77
 function app_variants {
48
     filename=$1
78
     filename=$1
270
         if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
300
         if [[ ${APPS_INSTALLED[$app_index]} == "1" ]]; then
271
             if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
301
             if [[ ${APPS_CHOSEN[$app_index]} == "0" ]]; then
272
                 echo $"Removing application: ${a}"
302
                 echo $"Removing application: ${a}"
303
+                app_load_variables ${a}
273
                 remove_app ${a}
304
                 remove_app ${a}
274
                 remove_${a}
305
                 remove_${a}
275
                 echo $"${a} was removed"
306
                 echo $"${a} was removed"
310
                     # clears any removal indicator
341
                     # clears any removal indicator
311
                     reinstall_app ${a}
342
                     reinstall_app ${a}
312
 
343
 
344
+                    app_load_variables ${a}
345
+
313
                     if [[ $(app_is_installed ${a}) == "1" ]]; then
346
                     if [[ $(app_is_installed ${a}) == "1" ]]; then
314
                         echo $"Upgrading application from interactive: ${a}"
347
                         echo $"Upgrading application from interactive: ${a}"
315
                         upgrade_${a}
348
                         upgrade_${a}
317
                     else
350
                     else
318
                         echo $"Installing application from interactive: ${a}"
351
                         echo $"Installing application from interactive: ${a}"
319
                         install_${a}
352
                         install_${a}
353
+                        app_save_variables ${a}
320
                         install_completed ${a}
354
                         install_completed ${a}
321
                         echo $"${a} was installed from interactive"
355
                         echo $"${a} was installed from interactive"
322
                     fi
356
                     fi
323
                 else
357
                 else
324
                     # check if the app was removed
358
                     # check if the app was removed
325
                     if [[ $(app_is_removed ${a}) == "0" ]]; then
359
                     if [[ $(app_is_removed ${a}) == "0" ]]; then
360
+                        app_load_variables ${a}
326
                         if [[ $(app_is_installed ${a}) == "1" ]]; then
361
                         if [[ $(app_is_installed ${a}) == "1" ]]; then
327
                             echo $"Upgrading application: ${a}"
362
                             echo $"Upgrading application: ${a}"
328
                             upgrade_${a}
363
                             upgrade_${a}