瀏覽代碼

Tidying config utils

Bob Mottram 7 年之前
父節點
當前提交
34e59ae030
共有 1 個文件被更改,包括 54 次插入58 次删除
  1. 54
    58
      src/freedombone-utils-config

+ 54
- 58
src/freedombone-utils-config 查看文件

106
     param_name="$1"
106
     param_name="$1"
107
 
107
 
108
     if [ ${#param_name} -gt 0 ]; then
108
     if [ ${#param_name} -gt 0 ]; then
109
-        if [ $COMPLETION_FILE ]; then
110
-            if [ -f $COMPLETION_FILE ]; then
111
-                if grep -q "${param_name}:" $COMPLETION_FILE; then
112
-                    param_value=$(cat $COMPLETION_FILE | grep "${param_name}:" | head -n 1 | awk -F ':' '{print $2}')
109
+        if [ "$COMPLETION_FILE" ]; then
110
+            if [ -f "$COMPLETION_FILE" ]; then
111
+                if grep -q "${param_name}:" "$COMPLETION_FILE"; then
112
+                    param_value=$(grep "${param_name}:" "$COMPLETION_FILE" | head -n 1 | awk -F ':' '{print $2}')
113
                     echo "$param_value"
113
                     echo "$param_value"
114
                     return
114
                     return
115
                 fi
115
                 fi
123
     param_name="$1"
123
     param_name="$1"
124
     param_value="$2"
124
     param_value="$2"
125
 
125
 
126
-    if [ ! $COMPLETION_FILE ]; then
126
+    if [ ! "$COMPLETION_FILE" ]; then
127
         COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
127
         COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
128
     fi
128
     fi
129
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
129
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
132
 
132
 
133
     if [ ${#param_name} -gt 0 ]; then
133
     if [ ${#param_name} -gt 0 ]; then
134
         if [ ${#param_value} -gt 0 ]; then
134
         if [ ${#param_value} -gt 0 ]; then
135
-            if [ -f $COMPLETION_FILE ]; then
136
-                if grep -q "${param_name}:" $COMPLETION_FILE; then
137
-                    sed -i "s|${param_name}:.*|${param_name}:${param_value}|g" $COMPLETION_FILE
135
+            if [ -f "$COMPLETION_FILE" ]; then
136
+                if grep -q "${param_name}:" "$COMPLETION_FILE"; then
137
+                    sed -i "s|${param_name}:.*|${param_name}:${param_value}|g" "$COMPLETION_FILE"
138
                 else
138
                 else
139
-                    echo "${param_name}:${param_value}" >> $COMPLETION_FILE
139
+                    echo "${param_name}:${param_value}" >> "$COMPLETION_FILE"
140
                 fi
140
                 fi
141
             else
141
             else
142
-                echo "${param_name}:${param_value}" > $COMPLETION_FILE
142
+                echo "${param_name}:${param_value}" > "$COMPLETION_FILE"
143
             fi
143
             fi
144
         fi
144
         fi
145
     fi
145
     fi
148
 function mark_completed {
148
 function mark_completed {
149
     param_name="$1"
149
     param_name="$1"
150
 
150
 
151
-    if [ ! $COMPLETION_FILE ]; then
151
+    if [ ! "$COMPLETION_FILE" ]; then
152
         COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
152
         COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
153
     fi
153
     fi
154
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
154
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
156
     fi
156
     fi
157
 
157
 
158
     if [ ${#param_name} -gt 0 ]; then
158
     if [ ${#param_name} -gt 0 ]; then
159
-        if [ -f $COMPLETION_FILE ]; then
160
-            if ! grep -Fxq "${param_name}" $COMPLETION_FILE; then
161
-                echo "${param_name}" >> $COMPLETION_FILE
159
+        if [ -f "$COMPLETION_FILE" ]; then
160
+            if ! grep -Fxq "${param_name}" "$COMPLETION_FILE"; then
161
+                echo "${param_name}" >> "$COMPLETION_FILE"
162
             fi
162
             fi
163
         else
163
         else
164
-            echo "${param_name}" > $COMPLETION_FILE
164
+            echo "${param_name}" > "$COMPLETION_FILE"
165
         fi
165
         fi
166
     fi
166
     fi
167
 }
167
 }
169
 function is_completed {
169
 function is_completed {
170
     param_name="$1"
170
     param_name="$1"
171
 
171
 
172
-    if [ ! $COMPLETION_FILE ]; then
173
-        COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
172
+    if [ ! "$COMPLETION_FILE" ]; then
173
+        COMPLETION_FILE="$HOME/${PROJECT_NAME}-completed.txt"
174
     fi
174
     fi
175
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
175
     if [ ${#COMPLETION_FILE} -eq 0 ]; then
176
-        COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
176
+        COMPLETION_FILE="$HOME/${PROJECT_NAME}-completed.txt"
177
     fi
177
     fi
178
 
178
 
179
     if [ ${#param_name} -gt 0 ]; then
179
     if [ ${#param_name} -gt 0 ]; then
180
-        if [ -f $COMPLETION_FILE ]; then
181
-            if grep -Fxq "${param_name}" $COMPLETION_FILE; then
180
+        if [ -f "$COMPLETION_FILE" ]; then
181
+            if grep -Fxq "${param_name}" "$COMPLETION_FILE"; then
182
                 echo "1"
182
                 echo "1"
183
                 return
183
                 return
184
             fi
184
             fi
191
     param_name="$1"
191
     param_name="$1"
192
 
192
 
193
     if [ ${#param_name} -gt 0 ]; then
193
     if [ ${#param_name} -gt 0 ]; then
194
-        if [ $CONFIGURATION_FILE ]; then
195
-            if [ -f $CONFIGURATION_FILE ]; then
196
-                if grep -q "${param_name}=" $CONFIGURATION_FILE; then
197
-                    param_value=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
198
-                    if [[ "${param_value}" != *" "* ]]; then
199
-                        export ${param_name}=${param_value}
200
-                    else
201
-                        export ${param_name}="${param_value}"
202
-                    fi
194
+        if [ "$CONFIGURATION_FILE" ]; then
195
+            if [ -f "$CONFIGURATION_FILE" ]; then
196
+                if grep -q "${param_name}=" "$CONFIGURATION_FILE"; then
197
+                    param_value=$(grep "${param_name}=" "$CONFIGURATION_FILE" | head -n 1 | awk -F '=' '{print $2}')
198
+                    export "${param_name}"="${param_value}"
203
                 fi
199
                 fi
204
             fi
200
             fi
205
         fi
201
         fi
210
     param_name="$1"
206
     param_name="$1"
211
 
207
 
212
     if [ ${#param_name} -gt 0 ]; then
208
     if [ ${#param_name} -gt 0 ]; then
213
-        if [ $CONFIGURATION_FILE ]; then
214
-            if [ -f $CONFIGURATION_FILE ]; then
215
-                if grep -q "${param_name}=" $CONFIGURATION_FILE; then
216
-                    param_value=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
209
+        if [ "$CONFIGURATION_FILE" ]; then
210
+            if [ -f "$CONFIGURATION_FILE" ]; then
211
+                if grep -q "${param_name}=" "$CONFIGURATION_FILE"; then
212
+                    param_value=$(grep "${param_name}=" "$CONFIGURATION_FILE" | head -n 1 | awk -F '=' '{print $2}')
217
                     if [ ${#param_value} -gt 0 ]; then
213
                     if [ ${#param_value} -gt 0 ]; then
218
                         echo "1"
214
                         echo "1"
219
                         return
215
                         return
229
     param_name="$1"
225
     param_name="$1"
230
     param_value="$2"
226
     param_value="$2"
231
 
227
 
232
-    if [ ! $CONFIGURATION_FILE ]; then
228
+    if [ ! "$CONFIGURATION_FILE" ]; then
233
         CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
229
         CONFIGURATION_FILE=$HOME/${PROJECT_NAME}.cfg
234
     fi
230
     fi
235
     if [ ${#CONFIGURATION_FILE} -eq 0 ]; then
231
     if [ ${#CONFIGURATION_FILE} -eq 0 ]; then
238
 
234
 
239
     if [ ${#param_name} -gt 0 ]; then
235
     if [ ${#param_name} -gt 0 ]; then
240
         if [ ${#param_value} -gt 0 ]; then
236
         if [ ${#param_value} -gt 0 ]; then
241
-            if [ -f $CONFIGURATION_FILE ]; then
242
-                if grep -q "${param_name}=" $CONFIGURATION_FILE; then
243
-                    sed -i "s|${param_name}=.*|${param_name}=${param_value}|g" $CONFIGURATION_FILE
237
+            if [ -f "$CONFIGURATION_FILE" ]; then
238
+                if grep -q "${param_name}=" "$CONFIGURATION_FILE"; then
239
+                    sed -i "s|${param_name}=.*|${param_name}=${param_value}|g" "$CONFIGURATION_FILE"
244
                 else
240
                 else
245
-                    echo "${param_name}=${param_value}" >> $CONFIGURATION_FILE
241
+                    echo "${param_name}=${param_value}" >> "$CONFIGURATION_FILE"
246
                 fi
242
                 fi
247
             else
243
             else
248
-                echo "${param_name}=${param_value}" > $CONFIGURATION_FILE
244
+                echo "${param_name}=${param_value}" > "$CONFIGURATION_FILE"
249
             fi
245
             fi
250
         fi
246
         fi
251
     fi
247
     fi
255
     param_name="$1"
251
     param_name="$1"
256
 
252
 
257
     if [ ${#param_name} -gt 0 ]; then
253
     if [ ${#param_name} -gt 0 ]; then
258
-        if [ $CONFIGURATION_FILE ]; then
259
-            if [ -f $CONFIGURATION_FILE ]; then
260
-                if grep -q "${param_name}=" $CONFIGURATION_FILE; then
261
-                    sed -i "/${param_name}=/d" $CONFIGURATION_FILE
254
+        if [ "$CONFIGURATION_FILE" ]; then
255
+            if [ -f "$CONFIGURATION_FILE" ]; then
256
+                if grep -q "${param_name}=" "$CONFIGURATION_FILE"; then
257
+                    sed -i "/${param_name}=/d" "$CONFIGURATION_FILE"
262
                 fi
258
                 fi
263
             fi
259
             fi
264
         fi
260
         fi
269
     param_name="$1"
265
     param_name="$1"
270
 
266
 
271
     if [ ${#param_name} -gt 0 ]; then
267
     if [ ${#param_name} -gt 0 ]; then
272
-        if [ $COMPLETION_FILE ]; then
273
-            if [ -f $COMPLETION_FILE ]; then
274
-                if grep -Fxq "${param_name}" $COMPLETION_FILE; then
275
-                    sed -i "/${param_name}/d" $COMPLETION_FILE
268
+        if [ "$COMPLETION_FILE" ]; then
269
+            if [ -f "$COMPLETION_FILE" ]; then
270
+                if grep -Fxq "${param_name}" "$COMPLETION_FILE"; then
271
+                    sed -i "/${param_name}/d" "$COMPLETION_FILE"
276
                 fi
272
                 fi
277
-                if grep -q "${param_name}:" $COMPLETION_FILE; then
278
-                    sed -i "/${param_name}:/d" $COMPLETION_FILE
273
+                if grep -q "${param_name}:" "$COMPLETION_FILE"; then
274
+                    sed -i "/${param_name}:/d" "$COMPLETION_FILE"
279
                 fi
275
                 fi
280
             fi
276
             fi
281
         fi
277
         fi
291
 
287
 
292
 function read_configuration_values {
288
 function read_configuration_values {
293
     # if not installing on a Beaglebone then use sdb as the USB drive by default
289
     # if not installing on a Beaglebone then use sdb as the USB drive by default
294
-    if [ ! $INSTALLING_ON_BBB ]; then
290
+    if [ ! "$INSTALLING_ON_BBB" ]; then
295
         if [[ $USB_DRIVE == /dev/sda1 ]]; then
291
         if [[ $USB_DRIVE == /dev/sda1 ]]; then
296
             USB_DRIVE=/dev/sdb1
292
             USB_DRIVE=/dev/sdb1
297
         fi
293
         fi
298
     fi
294
     fi
299
 
295
 
300
-    if [ -f $CONFIGURATION_FILE ]; then
296
+    if [ -f "$CONFIGURATION_FILE" ]; then
301
         # Ensure that a copy of the config exists for upgrade purposes
297
         # Ensure that a copy of the config exists for upgrade purposes
302
         if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
298
         if [[ $CONFIGURATION_FILE != "/root/${PROJECT_NAME}.cfg" ]]; then
303
-            cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
299
+            cp "$CONFIGURATION_FILE" "/root/${PROJECT_NAME}.cfg"
304
         fi
300
         fi
305
 
301
 
306
         for v in "${configuration_variables[@]}"
302
         for v in "${configuration_variables[@]}"
308
             read_config_param "$v"
304
             read_config_param "$v"
309
         done
305
         done
310
 
306
 
311
-        if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
307
+        if grep -q "DEBIAN_REPO" "$CONFIGURATION_FILE"; then
312
             read_config_param "DEBIAN_REPO"
308
             read_config_param "DEBIAN_REPO"
309
+            # shellcheck disable=SC2034
313
             CHECK_MESSAGE=$"Check your internet connection, /etc/network/interfaces and /etc/resolvconf/resolv.conf.d/head, 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."
310
             CHECK_MESSAGE=$"Check your internet connection, /etc/network/interfaces and /etc/resolvconf/resolv.conf.d/head, 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."
314
         fi
311
         fi
315
     fi
312
     fi
317
 
314
 
318
 function read_configuration {
315
 function read_configuration {
319
     if [[ $INSTALLING_FROM_CONFIGURATION_FILE == "yes"  ]]; then
316
     if [[ $INSTALLING_FROM_CONFIGURATION_FILE == "yes"  ]]; then
320
-        if [ ! -f $CONFIGURATION_FILE ]; then
317
+        if [ ! -f "$CONFIGURATION_FILE" ]; then
321
             echo $"The configuration file $CONFIGURATION_FILE was not found"
318
             echo $"The configuration file $CONFIGURATION_FILE was not found"
322
             exit 8935
319
             exit 8935
323
         fi
320
         fi
336
 
333
 
337
 # check that domain names are valid and that they are unique for each app
334
 # check that domain names are valid and that they are unique for each app
338
 function check_domains {
335
 function check_domains {
339
-    specified_domains=$(cat $CONFIGURATION_FILE | grep "_DOMAIN_NAME" | uniq)
340
-    domains_array=($specified_domains)
336
+    specified_domains=$(grep "_DOMAIN_NAME" "$CONFIGURATION_FILE" | uniq)
337
+    domains_array=("$specified_domains")
341
     checked_domains=()
338
     checked_domains=()
342
 
339
 
343
     for d in "${domains_array[@]}"
340
     for d in "${domains_array[@]}"
346
         if [[ "$domain_param" != "DEFAULT_DOMAIN_NAME" ]]; then
343
         if [[ "$domain_param" != "DEFAULT_DOMAIN_NAME" ]]; then
347
             domain_value=$(echo "$d" | awk -F '=' '{print $2}')
344
             domain_value=$(echo "$d" | awk -F '=' '{print $2}')
348
             if [[ "$domain_value" != "${LOCAL_NAME}.local" ]]; then
345
             if [[ "$domain_value" != "${LOCAL_NAME}.local" ]]; then
349
-                item_in_array "${domain_value}" "${checked_domains[@]}"
350
-                if [[ $? != 0 ]]; then
346
+                if ! item_in_array "${domain_value}" "${checked_domains[@]}"; then
351
                     # test that this is a valid domain name
347
                     # test that this is a valid domain name
352
                     function_check test_domain_name
348
                     function_check test_domain_name
353
                     test_domain_name "$domain_value"
349
                     test_domain_name "$domain_value"