瀏覽代碼

Handling app variables

Bob Mottram 8 年之前
父節點
當前提交
d5bedb0e55
共有 4 個文件被更改,包括 147 次插入232 次删除
  1. 1
    0
      src/freedombone
  2. 41
    128
      src/freedombone-config
  3. 98
    99
      src/freedombone-utils-config
  4. 7
    5
      src/freedombone-utils-selector

+ 1
- 0
src/freedombone 查看文件

@@ -285,6 +285,7 @@ function parse_args {
285 285
 
286 286
     if [ ! $SYSTEM_TYPE ]; then
287 287
         SYSTEM_TYPE=$'full'
288
+        write_config_param "SYSTEM_TYPE" "$SYSTEM_TYPE"
288 289
     fi
289 290
 
290 291
     if [[ $(is_valid_variant) == "0" ]]; then

+ 41
- 128
src/freedombone-config 查看文件

@@ -796,6 +796,7 @@ function choose_system_variant {
796 796
     variant_choice=$((variant_choice - 1))
797 797
     export SYSTEM_TYPE=${variants_list[$variant_choice]}
798 798
     save_configuration_file
799
+    write_config_param "SYSTEM_TYPE" "$SYSTEM_TYPE"
799 800
 }
800 801
 
801 802
 function validate_freedns_code {
@@ -858,134 +859,46 @@ function save_configuration_file {
858 859
         CONFIGURATION_FILE='freedombone.cfg'
859 860
     fi
860 861
 
861
-    echo "MY_USERNAME=$MY_USERNAME" > $CONFIGURATION_FILE
862
-    echo "DEFAULT_DOMAIN_NAME=$DEFAULT_DOMAIN_NAME" >> $CONFIGURATION_FILE
863
-    if [ $DEFAULT_DOMAIN_CODE ]; then
864
-        echo "DEFAULT_DOMAIN_CODE=$DEFAULT_DOMAIN_CODE" >> $CONFIGURATION_FILE
865
-    fi
866
-    echo "SYSTEM_TYPE=$SYSTEM_TYPE" >> $CONFIGURATION_FILE
867
-    echo "INSTALLING_ON_BBB=$INSTALLING_ON_BBB" >> $CONFIGURATION_FILE
868
-    echo "USB_DRIVE=$USB_DRIVE" >> $CONFIGURATION_FILE
869
-    echo "DDNS_PROVIDER=$DDNS_PROVIDER" >> $CONFIGURATION_FILE
870
-    echo "DDNS_USERNAME=$DDNS_USERNAME" >> $CONFIGURATION_FILE
871
-    echo "DDNS_PASSWORD=$DDNS_PASSWORD" >> $CONFIGURATION_FILE
872
-    echo "DEFAULT_LANGUAGE=$DEFAULT_LANGUAGE" >> $CONFIGURATION_FILE
873
-    if [ "$MY_NAME" ]; then
874
-        echo "MY_NAME=$MY_NAME" >> $CONFIGURATION_FILE
875
-    fi
876
-    echo "MY_EMAIL_ADDRESS=$MY_EMAIL_ADDRESS" >> $CONFIGURATION_FILE
877
-    if [ $LOCAL_NETWORK_STATIC_IP_ADDRESS ]; then
878
-        echo "LOCAL_NETWORK_STATIC_IP_ADDRESS=$LOCAL_NETWORK_STATIC_IP_ADDRESS" >> $CONFIGURATION_FILE
879
-        echo "ROUTER_IP_ADDRESS=$ROUTER_IP_ADDRESS" >> $CONFIGURATION_FILE
880
-    fi
881
-    if [ $ENABLE_CJDNS ]; then
882
-        echo "ENABLE_CJDNS=$ENABLE_CJDNS" >> $CONFIGURATION_FILE
883
-    fi
884
-    if [ $ENABLE_BATMAN ]; then
885
-        echo "ENABLE_BATMAN=$ENABLE_BATMAN" >> $CONFIGURATION_FILE
886
-    fi
887
-    if [ $ENABLE_BABEL ]; then
888
-        echo "ENABLE_BABEL=$ENABLE_BABEL" >> $CONFIGURATION_FILE
889
-    fi
890
-    echo "DEBIAN_REPO=$DEBIAN_REPO" >> $CONFIGURATION_FILE
891
-    if [ $NAMESERVER1 ]; then
892
-        echo "NAMESERVER1=$NAMESERVER1" >> $CONFIGURATION_FILE
893
-    fi
894
-    if [ $NAMESERVER2 ]; then
895
-        echo "NAMESERVER2=$NAMESERVER2" >> $CONFIGURATION_FILE
896
-    fi
897
-    if [ "$WIKI_TITLE" ]; then
898
-        echo "WIKI_TITLE=$WIKI_TITLE" >> $CONFIGURATION_FILE
899
-    fi
900
-    if [ $WIKI_DOMAIN_NAME ]; then
901
-        echo "WIKI_DOMAIN_NAME=$WIKI_DOMAIN_NAME" >> $CONFIGURATION_FILE
902
-    fi
903
-    if [ $WIKI_CODE ]; then
904
-        echo "WIKI_CODE=$WIKI_CODE" >> $CONFIGURATION_FILE
905
-    fi
906
-    if [ "$MY_BLOG_TITLE" ]; then
907
-        echo "MY_BLOG_TITLE=$MY_BLOG_TITLE" >> $CONFIGURATION_FILE
908
-    fi
909
-    if [ $FULLBLOG_DOMAIN_NAME ]; then
910
-        echo "FULLBLOG_DOMAIN_NAME=$FULLBLOG_DOMAIN_NAME" >> $CONFIGURATION_FILE
911
-    fi
912
-    if [ $FULLBLOG_CODE ]; then
913
-        echo "FULLBLOG_CODE=$FULLBLOG_CODE" >> $CONFIGURATION_FILE
914
-    fi
915
-    if [ $HUBZILLA_DOMAIN_NAME ]; then
916
-        echo "HUBZILLA_DOMAIN_NAME=$HUBZILLA_DOMAIN_NAME" >> $CONFIGURATION_FILE
917
-    fi
918
-    if [ $HUBZILLA_CODE ]; then
919
-        echo "HUBZILLA_CODE=$HUBZILLA_CODE" >> $CONFIGURATION_FILE
920
-    fi
921
-    if [ ${#MICROBLOG_DOMAIN_NAME} -gt 1 ]; then
922
-        echo "MICROBLOG_DOMAIN_NAME=$MICROBLOG_DOMAIN_NAME" >> $CONFIGURATION_FILE
923
-    fi
924
-    if [ $MICROBLOG_CODE ]; then
925
-        echo "MICROBLOG_CODE=$MICROBLOG_CODE" >> $CONFIGURATION_FILE
926
-    fi
927
-    if [ ${#MICROBLOG_WELCOME_MESSAGE} -gt 1 ]; then
928
-        echo "MICROBLOG_WELCOME_MESSAGE=$MICROBLOG_WELCOME_MESSAGE" >> $CONFIGURATION_FILE
929
-    fi
930
-    if [ $MICROBLOG_BACKGROUND_IMAGE_URL ]; then
931
-        echo "MICROBLOG_BACKGROUND_IMAGE_URL=$MICROBLOG_BACKGROUND_IMAGE_URL" >> $CONFIGURATION_FILE
932
-    fi
933
-    if [ $GIT_DOMAIN_NAME ]; then
934
-        echo "GIT_DOMAIN_NAME=$GIT_DOMAIN_NAME" >> $CONFIGURATION_FILE
935
-    fi
936
-    if [ $GIT_CODE ]; then
937
-        echo "GIT_CODE=$GIT_CODE" >> $CONFIGURATION_FILE
938
-    fi
939
-    if [ $MEDIAGOBLIN_DOMAIN_NAME ]; then
940
-        echo "MEDIAGOBLIN_DOMAIN_NAME=$MEDIAGOBLIN_DOMAIN_NAME" >> $CONFIGURATION_FILE
941
-    fi
942
-    if [ $MEDIAGOBLIN_CODE ]; then
943
-        echo "MEDIAGOBLIN_CODE=$MEDIAGOBLIN_CODE" >> $CONFIGURATION_FILE
944
-    fi
945
-    if [ $HWRNG_TYPE ]; then
946
-        echo "HWRNG_TYPE=$HWRNG_TYPE" >> $CONFIGURATION_FILE
947
-    fi
948
-    if [ $ENABLE_SOCIAL_KEY_MANAGEMENT ]; then
949
-        echo "ENABLE_SOCIAL_KEY_MANAGEMENT=$ENABLE_SOCIAL_KEY_MANAGEMENT" >> $CONFIGURATION_FILE
950
-    fi
951
-    if [ $WIFI_SSID ]; then
952
-        echo "WIFI_SSID=$WIFI_SSID" >> $CONFIGURATION_FILE
953
-    fi
954
-    if [ $WIFI_INTERFACE ]; then
955
-        echo "WIFI_INTERFACE=$WIFI_INTERFACE" >> $CONFIGURATION_FILE
956
-    fi
957
-    if [ $WIFI_TYPE ]; then
958
-        echo "WIFI_TYPE=$WIFI_TYPE" >> $CONFIGURATION_FILE
959
-    fi
960
-    if [ ${#WIFI_PASSPHRASE} -gt 1 ]; then
961
-        echo "WIFI_PASSPHRASE=$WIFI_PASSPHRASE" >> $CONFIGURATION_FILE
962
-    fi
963
-    if [ $WIFI_HOTSPOT ]; then
964
-        echo "WIFI_HOTSPOT=$WIFI_HOTSPOT" >> $CONFIGURATION_FILE
965
-    fi
966
-    if [ $BATMAN_CELLID ]; then
967
-        echo "BATMAN_CELLID=$BATMAN_CELLID" >> $CONFIGURATION_FILE
968
-    fi
969
-    if [ $WIFI_CHANNEL ]; then
970
-        echo "WIFI_CHANNEL=$WIFI_CHANNEL" >> $CONFIGURATION_FILE
971
-    fi
972
-    if [ $DH_KEYLENGTH ]; then
973
-        echo "DH_KEYLENGTH=$DH_KEYLENGTH" >> $CONFIGURATION_FILE
974
-    fi
975
-    echo "ONION_ONLY=$ONION_ONLY" >> $CONFIGURATION_FILE
976
-
977
-    if [ $FRIENDS_MIRRORS_SERVER ]; then
978
-        echo "FRIENDS_MIRRORS_SERVER=$FRIENDS_MIRRORS_SERVER" >> $CONFIGURATION_FILE
979
-    fi
980
-    if [ $FRIENDS_MIRRORS_SSH_PORT ]; then
981
-        echo "FRIENDS_MIRRORS_SSH_PORT=$FRIENDS_MIRRORS_SSH_PORT" >> $CONFIGURATION_FILE
982
-    fi
983
-    if [ $FRIENDS_MIRRORS_PASSWORD ]; then
984
-        echo "FRIENDS_MIRRORS_PASSWORD=$FRIENDS_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
985
-    fi
986
-    if [ $MY_MIRRORS_PASSWORD ]; then
987
-        echo "MY_MIRRORS_PASSWORD=$MY_MIRRORS_PASSWORD" >> $CONFIGURATION_FILE
988
-    fi
862
+    save_variables=(MY_USERNAME
863
+                    DEFAULT_DOMAIN_NAME
864
+                    DEFAULT_DOMAIN_CODE
865
+                    SYSTEM_TYPE
866
+                    INSTALLING_ON_BBB
867
+                    USB_DRIVE
868
+                    DDNS_PROVIDER
869
+                    DDNS_USERNAME
870
+                    DDNS_PASSWORD
871
+                    DEFAULT_LANGUAGE
872
+                    MY_NAME
873
+                    MY_EMAIL_ADDRESS
874
+                    LOCAL_NETWORK_STATIC_IP_ADDRESS
875
+                    ROUTER_IP_ADDRESS
876
+                    ENABLE_CJDNS
877
+                    ENABLE_BATMAN
878
+                    ENABLE_BABEL
879
+                    DEBIAN_REPO
880
+                    NAMESERVER1
881
+                    NAMESERVER2
882
+                    HWRNG_TYPE
883
+                    ENABLE_SOCIAL_KEY_MANAGEMENT
884
+                    WIFI_SSID
885
+                    WIFI_INTERFACE
886
+                    WIFI_TYPE
887
+                    WIFI_PASSPHRASE
888
+                    WIFI_HOTSPOT
889
+                    BATMAN_CELLID
890
+                    WIFI_CHANNEL
891
+                    DH_KEYLENGTH
892
+                    ONION_ONLY
893
+                    FRIENDS_MIRRORS_SERVER
894
+                    FRIENDS_MIRRORS_SSH_PORT
895
+                    FRIENDS_MIRRORS_PASSWORD
896
+                    MY_MIRRORS_PASSWORD)
897
+
898
+    for v in "${save_variables[@]}"
899
+    do
900
+        write_config_param "$v" "${!v}"
901
+    done
989 902
 }
990 903
 
991 904
 # test a domain name to see if it's valid

+ 98
- 99
src/freedombone-utils-config 查看文件

@@ -31,10 +31,12 @@
31 31
 function read_config_param {
32 32
     param_name="$1"
33 33
 
34
-    if [ $CONFIGURATION_FILE ]; then
35
-        if [ -f $CONFIGURATION_FILE ]; then
36
-            if grep -q "${param_name}=" $CONFIGURATION_FILE; then
37
-                export ${param_name}=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
34
+    if [ ${#param_name} -gt 0 ]; then
35
+        if [ $CONFIGURATION_FILE ]; then
36
+            if [ -f $CONFIGURATION_FILE ]; then
37
+                if grep -q "${param_name}=" $CONFIGURATION_FILE; then
38
+                    export ${param_name}=$(cat $CONFIGURATION_FILE | grep "${param_name}=" | head -n 1 | awk -F '=' '{print $2}')
39
+                fi
38 40
             fi
39 41
         fi
40 42
     fi
@@ -44,15 +46,19 @@ function write_config_param {
44 46
     param_name="$1"
45 47
     param_value="$2"
46 48
 
47
-    if [ $CONFIGURATION_FILE ]; then
48
-        if [ -f $CONFIGURATION_FILE ]; then
49
-            if grep -q "${param_name}=" $CONFIGURATION_FILE; then
50
-                sed -i "s|${param_name}=.*|${param_name}=${param_value}|g" $CONFIGURATION_FILE
51
-            else
52
-                echo "${param_name}=${param_value}" >> $CONFIGURATION_FILE
49
+    if [ ${#param_name} -gt 0 ]; then
50
+        if [ ${#param_value} -gt 0 ]; then
51
+            if [ $CONFIGURATION_FILE ]; then
52
+                if [ -f $CONFIGURATION_FILE ]; then
53
+                    if grep -q "${param_name}=" $CONFIGURATION_FILE; then
54
+                        sed -i "s|${param_name}=.*|${param_name}=${param_value}|g" $CONFIGURATION_FILE
55
+                    else
56
+                        echo "${param_name}=${param_value}" >> $CONFIGURATION_FILE
57
+                    fi
58
+                else
59
+                    echo "${param_name}=${param_value}" > $CONFIGURATION_FILE
60
+                fi
53 61
             fi
54
-        else
55
-            echo "${param_name}=${param_value}" > $CONFIGURATION_FILE
56 62
         fi
57 63
     fi
58 64
 }
@@ -80,95 +86,88 @@ function read_configuration {
80 86
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
81 87
         fi
82 88
 
83
-        read_config_param "FRIENDS_MIRRORS_SERVER"
84
-        read_config_param "FRIENDS_MIRRORS_SSH_PORT"
85
-        read_config_param "FRIENDS_MIRRORS_PASSWORD"
86
-        read_config_param "MY_MIRRORS_PASSWORD"
87
-
88
-        read_config_param "SYSTEM_TYPE"
89
-        read_config_param "SSL_PROTOCOLS"
90
-        read_config_param "SSL_CIPHERS"
91
-        read_config_param "SSH_CIPHERS"
92
-        read_config_param "SSH_MACS"
93
-        read_config_param "SSH_KEX"
94
-        read_config_param "SSH_HOST_KEY_ALGORITHMS"
95
-        read_config_param "SSH_PASSWORDS"
96
-        read_config_param "REFRESH_GPG_KEYS_HOURS"
97
-        read_config_param "GPG_KEYSERVER"
98
-        read_config_param "ENABLE_SOCIAL_KEY_MANAGEMENT"
99
-        read_config_param "MY_USERNAME"
100
-        read_config_param "DOMAIN_NAME"
101
-        read_config_param "DEFAULT_DOMAIN_NAME"
102
-        read_config_param "DEFAULT_DOMAIN_CODE"
103
-        read_config_param "NAMESERVER1"
104
-        read_config_param "NAMESERVER2"
105
-        read_config_param "GET_IP_ADDRESS_URL"
106
-        read_config_param "DDNS_PROVIDER"
107
-        read_config_param "DDNS_USERNAME"
108
-        read_config_param "DDNS_PASSWORD"
109
-        read_config_param "LOCAL_NETWORK_STATIC_IP_ADDRESS"
110
-        read_config_param "ROUTER_IP_ADDRESS"
111
-        read_config_param "CPU_CORES"
112
-        read_config_param "WEBSERVER_LOG_LEVEL"
113
-        read_config_param "ROUTE_THROUGH_TOR"
114
-        read_config_param "MY_NAME"
115
-        read_config_param "MY_EMAIL_ADDRESS"
116
-        read_config_param "INSTALLING_ON_BBB"
117
-        read_config_param "SSH_PORT"
118
-        read_config_param "INSTALLED_WITHIN_DOCKER"
119
-        read_config_param "GPG_ENCRYPT_STORED_EMAIL"
120
-        read_config_param "MY_GPG_PUBLIC_KEY"
121
-        read_config_param "MY_GPG_PRIVATE_KEY"
122
-        read_config_param "MY_GPG_PUBLIC_KEY_ID"
123
-        read_config_param "USB_DRIVE"
124
-        read_config_param "MAX_PHP_MEMORY"
125
-        read_config_param "TLS_TIME_SOURCE1"
126
-        read_config_param "TLS_TIME_SOURCE2"
127
-        read_config_param "ONION_ONLY"
128
-        read_config_param "DEFAULT_LANGUAGE"
129
-        read_config_param "MINIMAL_INSTALL"
130
-        read_config_param "LETSENCRYPT_SERVER"
131
-
132
-        read_config_param "WIFI_INTERFACE"
133
-        read_config_param "WIFI_SSID"
134
-        read_config_param "WIFI_TYPE"
135
-        read_config_param "WIFI_PASSPHRASE"
136
-        read_config_param "WIFI_HOTSPOT"
137
-        read_config_param "WIFI_NETWORKS_FILE"
138
-
139
-        read_config_param "DEFAULT_SEARCH"
140
-        read_config_param "SEARCH_ENGINE_PASSWORD"
141
-
142
-        read_config_param "PROJECT_WEBSITE"
143
-        read_config_param "PROJECT_REPO"
144
-
145
-        read_config_param "GPGIT_REPO"
146
-        read_config_param "GPGIT_COMMIT"
147
-
148
-        read_config_param "NGINX_ENSITE_REPO"
149
-        read_config_param "NGINX_ENSITE_REPO"
150
-        read_config_param "NGINX_ENSITE_COMMIT"
151
-
152
-        read_config_param "CLEANUP_MAILDIR_COMMIT"
153
-        read_config_param "CLEANUP_MAILDIR_REPO"
154
-
155
-        read_config_param "INADYN_REPO"
156
-        read_config_param "INADYN_COMMIT"
157
-
158
-        read_config_param "DH_KEYLENGTH"
159
-        read_config_param "WIFI_CHANNEL"
160
-
161
-        read_config_param "IPV6_NETWORK"
162
-        read_config_param "HWRNG_TYPE"
163
-
164
-        read_config_param "ENABLE_BABEL"
165
-        read_config_param "ENABLE_BATMAN"
166
-        read_config_param "ENABLE_CJDNS"
167
-
168
-        read_config_param "PUBLIC_MAILING_LIST"
89
+        read_config_variables=(FRIENDS_MIRRORS_SERVER
90
+                               FRIENDS_MIRRORS_SSH_PORT
91
+                               FRIENDS_MIRRORS_PASSWORD
92
+                               MY_MIRRORS_PASSWORD
93
+                               SYSTEM_TYPE
94
+                               SSL_PROTOCOLS
95
+                               SSL_CIPHERS
96
+                               SSH_CIPHERS
97
+                               SSH_MACS
98
+                               SSH_KEX
99
+                               SSH_HOST_KEY_ALGORITHMS
100
+                               SSH_PASSWORDS
101
+                               REFRESH_GPG_KEYS_HOURS
102
+                               GPG_KEYSERVER
103
+                               ENABLE_SOCIAL_KEY_MANAGEMENT
104
+                               MY_USERNAME
105
+                               DOMAIN_NAME
106
+                               DEFAULT_DOMAIN_NAME
107
+                               DEFAULT_DOMAIN_CODE
108
+                               NAMESERVER1
109
+                               NAMESERVER2
110
+                               GET_IP_ADDRESS_URL
111
+                               DDNS_PROVIDER
112
+                               DDNS_USERNAME
113
+                               DDNS_PASSWORD
114
+                               LOCAL_NETWORK_STATIC_IP_ADDRESS
115
+                               ROUTER_IP_ADDRESS
116
+                               CPU_CORES
117
+                               WEBSERVER_LOG_LEVEL
118
+                               ROUTE_THROUGH_TOR
119
+                               MY_NAME
120
+                               MY_EMAIL_ADDRESS
121
+                               INSTALLING_ON_BBB
122
+                               SSH_PORT
123
+                               INSTALLED_WITHIN_DOCKER
124
+                               GPG_ENCRYPT_STORED_EMAIL
125
+                               MY_GPG_PUBLIC_KEY
126
+                               MY_GPG_PRIVATE_KEY
127
+                               MY_GPG_PUBLIC_KEY_ID
128
+                               USB_DRIVE
129
+                               MAX_PHP_MEMORY
130
+                               TLS_TIME_SOURCE1
131
+                               TLS_TIME_SOURCE2
132
+                               ONION_ONLY
133
+                               DEFAULT_LANGUAGE
134
+                               MINIMAL_INSTALL
135
+                               LETSENCRYPT_SERVER
136
+                               WIFI_INTERFACE
137
+                               WIFI_SSID
138
+                               WIFI_TYPE
139
+                               WIFI_PASSPHRASE
140
+                               WIFI_HOTSPOT
141
+                               WIFI_NETWORKS_FILE
142
+                               DEFAULT_SEARCH
143
+                               SEARCH_ENGINE_PASSWORD
144
+                               PROJECT_WEBSITE
145
+                               PROJECT_REPO
146
+                               GPGIT_REPO
147
+                               GPGIT_COMMIT
148
+                               NGINX_ENSITE_REPO
149
+                               NGINX_ENSITE_REPO
150
+                               NGINX_ENSITE_COMMIT
151
+                               CLEANUP_MAILDIR_COMMIT
152
+                               CLEANUP_MAILDIR_REPO
153
+                               INADYN_REPO
154
+                               INADYN_COMMIT
155
+                               DH_KEYLENGTH
156
+                               WIFI_CHANNEL
157
+                               IPV6_NETWORK
158
+                               HWRNG_TYPE
159
+                               ENABLE_BABEL
160
+                               ENABLE_BATMAN
161
+                               ENABLE_CJDNS
162
+                               PUBLIC_MAILING_LIST)
163
+
164
+        for v in "${read_config_variables[@]}"
165
+        do
166
+            read_config_param "$v"
167
+        done
169 168
 
170 169
         if grep -q "DEBIAN_REPO" $CONFIGURATION_FILE; then
171
-            DEBIAN_REPO=$(grep "DEBIAN_REPO" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
170
+            read_config_param "DEBIAN_REPO"
172 171
             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."
173 172
         fi
174 173
     fi

+ 7
- 5
src/freedombone-utils-selector 查看文件

@@ -48,11 +48,12 @@ function app_load_variables {
48 48
     app_name=$1
49 49
 
50 50
     var_name=${app_name}_variables
51
-    if [ ! $var_name ]; then
51
+    if [ ! ${!var_name} ]; then
52 52
         return
53 53
     fi
54 54
 
55
-    for v in "${$var_name[@]}"
55
+    varname=${!var_name}
56
+    for v in "${var_name[@]}"
56 57
     do
57 58
         read_config_param $v
58 59
     done
@@ -63,13 +64,14 @@ function app_save_variables {
63 64
     app_name=$1
64 65
 
65 66
     var_name=${app_name}_variables
66
-    if [ ! $var_name ]; then
67
+    if [ ! ${!var_name} ]; then
67 68
         return
68 69
     fi
69 70
 
70
-    for v in "${$var_name[@]}"
71
+    varname=${!var_name}
72
+    for v in "${varname[@]}"
71 73
     do
72
-        save_config_param $v "$$v"
74
+        save_config_param $v "${!v}"
73 75
     done
74 76
 }
75 77