Browse Source

Tidying of interactive install

Bob Mottram 8 years ago
parent
commit
c8f605a95d
3 changed files with 78 additions and 111 deletions
  1. 4
    55
      src/freedombone-app-blog
  2. 4
    54
      src/freedombone-app-wiki
  3. 70
    2
      src/freedombone-utils-interactive

+ 4
- 55
src/freedombone-app-blog View File

112
     if [[ $ONION_ONLY != "no" ]]; then
112
     if [[ $ONION_ONLY != "no" ]]; then
113
         MY_BLOG_TITLE='My Blog'
113
         MY_BLOG_TITLE='My Blog'
114
         FULLBLOG_DOMAIN_NAME='blog.local'
114
         FULLBLOG_DOMAIN_NAME='blog.local'
115
+        write_config_param "MY_BLOG_TITLE" "$MY_BLOG_TITLE"
116
+        write_config_param "FULLBLOG_DOMAIN_NAME" "$FULLBLOG_DOMAIN_NAME"
115
     else
117
     else
116
-        FULLBLOG_DETAILS_COMPLETE=
117
-        while [ ! $FULLBLOG_DETAILS_COMPLETE ]
118
-        do
119
-            data=$(tempfile 2>/dev/null)
120
-            trap "rm -f $data" 0 1 2 5 15
121
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
122
-                dialog --backtitle $"Freedombone Configuration" \
123
-                       --title $"Blog Configuration" \
124
-                       --form $"\nPlease enter your blog details:" 11 55 4 \
125
-                       $"Title:" 1 1 "$(grep 'MY_BLOG_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
126
-                       $"Domain:" 2 1 "$(grep 'FULLBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
127
-                       $"Code:" 3 1 "$(grep 'FULLBLOG_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
128
-                       2> $data
129
-            else
130
-                dialog --backtitle $"Freedombone Configuration" \
131
-                       --title $"Blog Configuration" \
132
-                       --form $"\nPlease enter your blog details:" 11 55 3 \
133
-                       $"Title:" 1 1 "$(grep 'MY_BLOG_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
134
-                       $"Domain:" 2 1 "$(grep 'FULLBLOG_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
135
-                       2> $data
136
-            fi
137
-            sel=$?
138
-            case $sel in
139
-                1) exit 1;;
140
-                255) exit 1;;
141
-            esac
142
-            MY_BLOG_TITLE=$(cat $data | sed -n 1p)
143
-            FULLBLOG_DOMAIN_NAME=$(cat $data | sed -n 2p)
144
-            if [ $FULLBLOG_DOMAIN_NAME ]; then
145
-                if [[ $FULLBLOG_DOMAIN_NAME == "$WIKI_DOMAIN_NAME" ]]; then
146
-                    FULLBLOG_DOMAIN_NAME=""
147
-                fi
148
-                TEST_DOMAIN_NAME=$FULLBLOG_DOMAIN_NAME
149
-                validate_domain_name
150
-                if [[ $TEST_DOMAIN_NAME != $FULLBLOG_DOMAIN_NAME ]]; then
151
-                    FULLBLOG_DOMAIN_NAME=
152
-                    dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
153
-                else
154
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
155
-                        FULLBLOG_CODE=$(cat $data | sed -n 3p)
156
-                        validate_freedns_code "$FULLBLOG_CODE"
157
-                        if [ ! $VALID_CODE ]; then
158
-                            FULLBLOG_DOMAIN_NAME=
159
-                        fi
160
-                    fi
161
-                fi
162
-            fi
163
-            if [ $FULLBLOG_DOMAIN_NAME ]; then
164
-                FULLBLOG_DETAILS_COMPLETE="yes"
165
-            fi
166
-        done
167
-
168
-        write_config_param "FULLBLOG_CODE" "$FULLBLOG_CODE"
118
+        function_check interactive_site_details_with_title
119
+        interactive_site_details_with_title "blog" "MY_BLOG_TITLE" "FULLBLOG_DOMAIN_NAME" "FULLBLOG_CODE"
169
     fi
120
     fi
170
-    write_config_param "MY_BLOG_TITLE" "$MY_BLOG_TITLE"
171
-    write_config_param "FULLBLOG_DOMAIN_NAME" "$FULLBLOG_DOMAIN_NAME"
172
     APP_INSTALLED=1
121
     APP_INSTALLED=1
173
 }
122
 }
174
 
123
 

+ 4
- 54
src/freedombone-app-wiki View File

47
     if [[ $ONION_ONLY != "no" ]]; then
47
     if [[ $ONION_ONLY != "no" ]]; then
48
         WIKI_TITLE=$'My Wiki'
48
         WIKI_TITLE=$'My Wiki'
49
         WIKI_DOMAIN_NAME='wiki.local'
49
         WIKI_DOMAIN_NAME='wiki.local'
50
+        write_config_param "WIKI_TITLE" "$WIKI_TITLE"
51
+        write_config_param "WIKI_DOMAIN_NAME" "$WIKI_DOMAIN_NAME"
50
     else
52
     else
51
-        WIKI_DETAILS_COMPLETE=
52
-        while [ ! $WIKI_DETAILS_COMPLETE ]
53
-        do
54
-            data=$(tempfile 2>/dev/null)
55
-            trap "rm -f $data" 0 1 2 5 15
56
-
57
-            if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
58
-                dialog --backtitle $"Freedombone Configuration" \
59
-                       --title $"Wiki Configuration" \
60
-                       --form $"\nPlease enter your wiki details:" 11 55 4 \
61
-                       $"Title:" 1 1 "$(grep 'WIKI_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
62
-                       $"Domain:" 2 1 "$(grep 'WIKI_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
63
-                       $"Code:" 3 1 "$(grep 'WIKI_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
64
-                       2> $data
65
-            else
66
-                dialog --backtitle $"Freedombone Configuration" \
67
-                       --title $"Wiki Configuration" \
68
-                       --form $"\nPlease enter your wiki details:" 11 55 3 \
69
-                       $"Title:" 1 1 "$(grep 'WIKI_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
70
-                       $"Domain:" 2 1 "$(grep 'WIKI_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
71
-                       2> $data
72
-            fi
73
-            sel=$?
74
-            case $sel in
75
-                1) exit 1;;
76
-                255) exit 1;;
77
-            esac
78
-            WIKI_TITLE=$(cat $data | sed -n 1p)
79
-            WIKI_DOMAIN_NAME=$(cat $data | sed -n 2p)
80
-            if [ $WIKI_DOMAIN_NAME ]; then
81
-                TEST_DOMAIN_NAME=$WIKI_DOMAIN_NAME
82
-                validate_domain_name
83
-                if [[ $TEST_DOMAIN_NAME != $WIKI_DOMAIN_NAME ]]; then
84
-                    WIKI_DOMAIN_NAME=
85
-                    dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
86
-                else
87
-                    if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
88
-                        WIKI_CODE=$(cat $data | sed -n 3p)
89
-                        validate_freedns_code "$WIKI_CODE"
90
-                        if [ ! $VALID_CODE ]; then
91
-                            WIKI_DOMAIN_NAME=
92
-                        fi
93
-                    fi
94
-                fi
95
-            fi
96
-            if [ $WIKI_DOMAIN_NAME ]; then
97
-                WIKI_DETAILS_COMPLETE="yes"
98
-            fi
99
-        done
100
-
101
-        # save the results in the config file
102
-        write_config_param "WIKI_CODE" "$WIKI_CODE"
53
+        function_check interactive_site_details_with_title
54
+        interactive_site_details_with_title "wiki" "WIKI_TITLE" "WIKI_DOMAIN_NAME" "WIKI_CODE"
103
     fi
55
     fi
104
-    write_config_param "WIKI_TITLE" "$WIKI_TITLE"
105
-    write_config_param "WIKI_DOMAIN_NAME" "$WIKI_DOMAIN_NAME"
106
     APP_INSTALLED=1
56
     APP_INSTALLED=1
107
 }
57
 }
108
 
58
 

+ 70
- 2
src/freedombone-utils-interactive View File

111
     site_name_upper=${site_name^^}
111
     site_name_upper=${site_name^^}
112
 
112
 
113
     SITE_BACKTITLE=$"Freedombone Configuration"
113
     SITE_BACKTITLE=$"Freedombone Configuration"
114
-    SITE_CONFIG_TITLE=$"${site_name} Configuration"
115
-    SITE_FORM_TEXT=$"\nPlease enter your ${site_name} details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:"
114
+    SITE_CONFIG_TITLE=$"${site_name^} Configuration"
115
+    SITE_FORM_TEXT=$"\nPlease enter your ${site_name^} details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:"
116
     SITE_DOMAIN_NAME=
116
     SITE_DOMAIN_NAME=
117
     SITE_CODE=
117
     SITE_CODE=
118
     SITE_DETAILS_COMPLETE=
118
     SITE_DETAILS_COMPLETE=
168
     fi
168
     fi
169
 }
169
 }
170
 
170
 
171
+function interactive_site_details_with_title {
172
+    site_name="${1}"
173
+
174
+    SITE_BACKTITLE=$"Freedombone Configuration"
175
+    SITE_CONFIG_TITLE=$"${site_name^} Configuration"
176
+    SITE_FORM_TEXT=$"\nPlease enter your ${site_name^} details.\n\nIMPORTANT: This should be a domain name which is supported by Let's Encrypt:"
177
+    SITE_TITLE=$2
178
+    SITE_DOMAIN_NAME=$3
179
+    SITE_CODE=$4
180
+    SITE_DETAILS_COMPLETE=
181
+    while [ ! $SITE_DETAILS_COMPLETE ]
182
+    do
183
+        data=$(tempfile 2>/dev/null)
184
+        trap "rm -f $data" 0 1 2 5 15
185
+        if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
186
+                dialog --backtitle $"Freedombone Configuration" \
187
+                       --title "$SITE_BACKTITLE" \
188
+                       --form "$SITE_FORM_TEXT" 14 55 4 \
189
+                       $"Title:" 1 1 "$(grep '$SITE_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
190
+                       $"Domain:" 2 1 "$(grep '$SITE_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
191
+                       $"Code:" 3 1 "$(grep '$SITE_CODE' temp.cfg | awk -F '=' '{print $2}')" 3 16 33 255 \
192
+                       2> $data
193
+        else
194
+            dialog --backtitle "$SITE_BACKTITLE" \
195
+                   --title "$SITE_CONFIG_TITLE" \
196
+                   --form "$SITE_FORM_TEXT" 11 55 3 \
197
+                   $"Title:" 1 1 "$(grep '$SITE_TITLE' temp.cfg | awk -F '=' '{print $2}')" 1 16 33 40 \
198
+                   $"Domain:" 2 1 "$(grep '$SITE_DOMAIN_NAME' temp.cfg | awk -F '=' '{print $2}')" 2 16 33 40 \
199
+                   2> $data
200
+        fi
201
+        sel=$?
202
+        case $sel in
203
+            1) exit 1;;
204
+            255) exit 1;;
205
+        esac
206
+        ${!SITE_TITLE}=$(cat $data | sed -n 1p)
207
+        ${!SITE_DOMAIN_NAME}=$(cat $data | sed -n 2p)
208
+        if [ ${!SITE_DOMAIN_NAME} ]; then
209
+            TEST_DOMAIN_NAME=${!SITE_DOMAIN_NAME}
210
+            validate_domain_name
211
+            if [[ $TEST_DOMAIN_NAME != ${!SITE_DOMAIN_NAME} ]]; then
212
+                ${!SITE_DOMAIN_NAME}=
213
+                dialog --title $"Domain name validation" --msgbox "$TEST_DOMAIN_NAME" 15 50
214
+            else
215
+                if [[ $DDNS_PROVIDER == "default@freedns.afraid.org" ]]; then
216
+                    ${!SITE_CODE}=$(cat $data | sed -n 3p)
217
+                    validate_freedns_code "${!SITE_CODE}"
218
+                    if [ ! $VALID_CODE ]; then
219
+                        ${!SITE_DOMAIN_NAME}=
220
+                    fi
221
+                fi
222
+            fi
223
+        fi
224
+        if [ ${!SITE_TITLE} ]; then
225
+            if [ ${!SITE_DOMAIN_NAME} ]; then
226
+                SITE_DETAILS_COMPLETE="yes"
227
+            fi
228
+        fi
229
+    done
230
+
231
+    # save the results in the config file
232
+    write_config_param "$SITE_TITLE" "${!SITE_TITLE}"
233
+    write_config_param "$SITE_DOMAIN_NAME" "${!SITE_DOMAIN_NAME}"
234
+    if [ ${!SITE_CODE} ]; then
235
+        write_config_param "$SITE_CODE" "${!SITE_CODE}"
236
+    fi
237
+}
238
+
171
 # NOTE: deliberately no exit 0
239
 # NOTE: deliberately no exit 0