Browse Source

Consolidation of configuration variables

Bob Mottram 8 years ago
parent
commit
811a39a924
2 changed files with 104 additions and 139 deletions
  1. 17
    63
      src/freedombone-config
  2. 87
    76
      src/freedombone-utils-config

+ 17
- 63
src/freedombone-config View File

172
             esac
172
             esac
173
         done
173
         done
174
     fi
174
     fi
175
-    save_configuration_file
175
+    save_configuration_values
176
 }
176
 }
177
 
177
 
178
 function choose_default_domain_name {
178
 function choose_default_domain_name {
227
             fi
227
             fi
228
         done
228
         done
229
     fi
229
     fi
230
-    save_configuration_file
230
+    save_configuration_values
231
 }
231
 }
232
 
232
 
233
 function choose_static_ip {
233
 function choose_static_ip {
271
             esac
271
             esac
272
             LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
272
             LOCAL_NETWORK_STATIC_IP_ADDRESS=$(cat $data | sed -n 1p)
273
             ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
273
             ROUTER_IP_ADDRESS=$(cat $data | sed -n 2p)
274
-            save_configuration_file
274
+            save_configuration_values
275
         fi
275
         fi
276
     fi
276
     fi
277
 }
277
 }
319
             14) DDNS_PROVIDER="default@changeip.com";;
319
             14) DDNS_PROVIDER="default@changeip.com";;
320
             255) exit 1;;
320
             255) exit 1;;
321
         esac
321
         esac
322
-        save_configuration_file
322
+        save_configuration_values
323
 
323
 
324
         valid_ddns_username=
324
         valid_ddns_username=
325
         while [ ! $valid_ddns_username ]
325
         while [ ! $valid_ddns_username ]
343
                 255) exit 1;;
343
                 255) exit 1;;
344
             esac
344
             esac
345
         done
345
         done
346
-        save_configuration_file
346
+        save_configuration_values
347
 
347
 
348
         valid_ddns_password=
348
         valid_ddns_password=
349
         while [ ! $valid_ddns_password ]
349
         while [ ! $valid_ddns_password ]
373
                 DDNS_PASSWORD=""
373
                 DDNS_PASSWORD=""
374
             fi
374
             fi
375
         done
375
         done
376
-        save_configuration_file
376
+        save_configuration_values
377
     fi
377
     fi
378
 }
378
 }
379
 
379
 
455
                 ;;
455
                 ;;
456
             255) exit 1;;
456
             255) exit 1;;
457
         esac
457
         esac
458
-        save_configuration_file
458
+        save_configuration_values
459
     else
459
     else
460
         # as defaults for a minimal install process these settings are debatable
460
         # as defaults for a minimal install process these settings are debatable
461
         NAMESERVER1='85.214.73.63'
461
         NAMESERVER1='85.214.73.63'
575
             49) DEBIAN_REPO='ftp.us.debian.org';;
575
             49) DEBIAN_REPO='ftp.us.debian.org';;
576
             255) exit 1;;
576
             255) exit 1;;
577
         esac
577
         esac
578
-        save_configuration_file
578
+        save_configuration_values
579
     else
579
     else
580
         DEBIAN_REPO='ftp.de.debian.org'
580
         DEBIAN_REPO='ftp.de.debian.org'
581
     fi
581
     fi
605
         else
605
         else
606
             HWRNG_TYPE="beaglebone"
606
             HWRNG_TYPE="beaglebone"
607
         fi
607
         fi
608
-        save_configuration_file
608
+        save_configuration_values
609
     fi
609
     fi
610
 }
610
 }
611
 
611
 
631
             0) ENABLE_SOCIAL_KEY_MANAGEMENT="yes";;
631
             0) ENABLE_SOCIAL_KEY_MANAGEMENT="yes";;
632
             255) exit 1;;
632
             255) exit 1;;
633
         esac
633
         esac
634
-        save_configuration_file
634
+        save_configuration_values
635
     else
635
     else
636
         # enable for the minimal case
636
         # enable for the minimal case
637
         ENABLE_SOCIAL_KEY_MANAGEMENT="yes"
637
         ENABLE_SOCIAL_KEY_MANAGEMENT="yes"
659
         if [[ $INSTALLING_ON_BBB == "yes" ]]; then
659
         if [[ $INSTALLING_ON_BBB == "yes" ]]; then
660
             USB_DRIVE=/dev/sda1
660
             USB_DRIVE=/dev/sda1
661
         fi
661
         fi
662
-        save_configuration_file
662
+        save_configuration_values
663
     fi
663
     fi
664
 }
664
 }
665
 
665
 
742
         echo $"The directory /home/$MY_USERNAME does not exist"
742
         echo $"The directory /home/$MY_USERNAME does not exist"
743
         exit 6437
743
         exit 6437
744
     fi
744
     fi
745
-    save_configuration_file
745
+    save_configuration_values
746
 }
746
 }
747
 
747
 
748
 function choose_full_name {
748
 function choose_full_name {
768
             255) exit 1;;
768
             255) exit 1;;
769
         esac
769
         esac
770
     done
770
     done
771
-    save_configuration_file
771
+    save_configuration_values
772
 }
772
 }
773
 
773
 
774
 function choose_system_variant {
774
 function choose_system_variant {
795
                             27 40 20 $varslist)
795
                             27 40 20 $varslist)
796
     variant_choice=$((variant_choice - 1))
796
     variant_choice=$((variant_choice - 1))
797
     export SYSTEM_TYPE=${variants_list[$variant_choice]}
797
     export SYSTEM_TYPE=${variants_list[$variant_choice]}
798
-    save_configuration_file
798
+    save_configuration_values
799
     write_config_param "SYSTEM_TYPE" "$SYSTEM_TYPE"
799
     write_config_param "SYSTEM_TYPE" "$SYSTEM_TYPE"
800
 }
800
 }
801
 
801
 
854
     shift
854
     shift
855
 done
855
 done
856
 
856
 
857
-function save_configuration_file {
858
-    if [ ! $CONFIGURATION_FILE ]; then
859
-        CONFIGURATION_FILE='freedombone.cfg'
860
-    fi
861
-
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
902
-}
903
-
904
 # test a domain name to see if it's valid
857
 # test a domain name to see if it's valid
905
 function validate_domain_name {
858
 function validate_domain_name {
906
     # count the number of dots in the domain name
859
     # count the number of dots in the domain name
1169
         dialog --title $"Main Repository" \
1122
         dialog --title $"Main Repository" \
1170
                --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
1123
                --msgbox $"Main repository set to $FRIENDS_MIRRORS_SERVER" 6 60
1171
     fi
1124
     fi
1172
-    save_configuration_file
1125
+    save_configuration_values
1173
 }
1126
 }
1174
 
1127
 
1175
 function interactive_select_language {
1128
 function interactive_select_language {
1320
         67) DEFAULT_LANGUAGE='uk_UA.UTF-8';;
1273
         67) DEFAULT_LANGUAGE='uk_UA.UTF-8';;
1321
         68) DEFAULT_LANGUAGE='vi_VN.UTF-8';;
1274
         68) DEFAULT_LANGUAGE='vi_VN.UTF-8';;
1322
     esac
1275
     esac
1323
-    save_configuration_file
1276
+    save_configuration_values
1324
 
1277
 
1325
     update-locale LANG=${DEFAULT_LANGUAGE}
1278
     update-locale LANG=${DEFAULT_LANGUAGE}
1326
     update-locale LANGUAGE=${DEFAULT_LANGUAGE}
1279
     update-locale LANGUAGE=${DEFAULT_LANGUAGE}
1415
 read_configuration_values
1368
 read_configuration_values
1416
 interactive_config
1369
 interactive_config
1417
 show_result
1370
 show_result
1371
+
1418
 exit 0
1372
 exit 0

+ 87
- 76
src/freedombone-utils-config View File

28
 # You should have received a copy of the GNU Affero General Public License
28
 # You should have received a copy of the GNU Affero General Public License
29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
29
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
30
 
30
 
31
+configuration_variables=(FRIENDS_MIRRORS_SERVER
32
+                         FRIENDS_MIRRORS_SSH_PORT
33
+                         FRIENDS_MIRRORS_PASSWORD
34
+                         MY_MIRRORS_PASSWORD
35
+                         SYSTEM_TYPE
36
+                         SSL_PROTOCOLS
37
+                         SSL_CIPHERS
38
+                         SSH_CIPHERS
39
+                         SSH_MACS
40
+                         SSH_KEX
41
+                         SSH_HOST_KEY_ALGORITHMS
42
+                         SSH_PASSWORDS
43
+                         REFRESH_GPG_KEYS_HOURS
44
+                         GPG_KEYSERVER
45
+                         ENABLE_SOCIAL_KEY_MANAGEMENT
46
+                         MY_USERNAME
47
+                         DOMAIN_NAME
48
+                         DEFAULT_DOMAIN_NAME
49
+                         DEFAULT_DOMAIN_CODE
50
+                         NAMESERVER1
51
+                         NAMESERVER2
52
+                         GET_IP_ADDRESS_URL
53
+                         DDNS_PROVIDER
54
+                         DDNS_USERNAME
55
+                         DDNS_PASSWORD
56
+                         LOCAL_NETWORK_STATIC_IP_ADDRESS
57
+                         ROUTER_IP_ADDRESS
58
+                         CPU_CORES
59
+                         WEBSERVER_LOG_LEVEL
60
+                         ROUTE_THROUGH_TOR
61
+                         MY_NAME
62
+                         MY_EMAIL_ADDRESS
63
+                         INSTALLING_ON_BBB
64
+                         SSH_PORT
65
+                         INSTALLED_WITHIN_DOCKER
66
+                         GPG_ENCRYPT_STORED_EMAIL
67
+                         MY_GPG_PUBLIC_KEY
68
+                         MY_GPG_PRIVATE_KEY
69
+                         MY_GPG_PUBLIC_KEY_ID
70
+                         USB_DRIVE
71
+                         MAX_PHP_MEMORY
72
+                         TLS_TIME_SOURCE1
73
+                         TLS_TIME_SOURCE2
74
+                         ONION_ONLY
75
+                         DEFAULT_LANGUAGE
76
+                         MINIMAL_INSTALL
77
+                         LETSENCRYPT_SERVER
78
+                         WIFI_INTERFACE
79
+                         WIFI_SSID
80
+                         WIFI_TYPE
81
+                         WIFI_PASSPHRASE
82
+                         WIFI_HOTSPOT
83
+                         WIFI_NETWORKS_FILE
84
+                         DEFAULT_SEARCH
85
+                         SEARCH_ENGINE_PASSWORD
86
+                         PROJECT_WEBSITE
87
+                         PROJECT_REPO
88
+                         GPGIT_REPO
89
+                         GPGIT_COMMIT
90
+                         NGINX_ENSITE_REPO
91
+                         NGINX_ENSITE_REPO
92
+                         NGINX_ENSITE_COMMIT
93
+                         CLEANUP_MAILDIR_COMMIT
94
+                         CLEANUP_MAILDIR_REPO
95
+                         INADYN_REPO
96
+                         INADYN_COMMIT
97
+                         DH_KEYLENGTH
98
+                         WIFI_CHANNEL
99
+                         IPV6_NETWORK
100
+                         HWRNG_TYPE
101
+                         ENABLE_BABEL
102
+                         ENABLE_BATMAN
103
+                         ENABLE_CJDNS
104
+                         PUBLIC_MAILING_LIST)
105
+
31
 function read_config_param {
106
 function read_config_param {
32
     param_name="$1"
107
     param_name="$1"
33
 
108
 
63
     fi
138
     fi
64
 }
139
 }
65
 
140
 
141
+function save_configuration_values {
142
+    if [ ! $CONFIGURATION_FILE ]; then
143
+        CONFIGURATION_FILE='freedombone.cfg'
144
+    fi
145
+
146
+    for v in "${configuration_variables[@]}"
147
+    do
148
+        write_config_param "$v" "${!v}"
149
+    done
150
+}
151
+
66
 function read_configuration_values {
152
 function read_configuration_values {
67
     # if not installing on a Beaglebone then use sdb as the USB drive by default
153
     # if not installing on a Beaglebone then use sdb as the USB drive by default
68
     if [ ! $INSTALLING_ON_BBB ]; then
154
     if [ ! $INSTALLING_ON_BBB ]; then
79
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
165
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
80
         fi
166
         fi
81
 
167
 
82
-        read_config_variables=(FRIENDS_MIRRORS_SERVER
83
-                               FRIENDS_MIRRORS_SSH_PORT
84
-                               FRIENDS_MIRRORS_PASSWORD
85
-                               MY_MIRRORS_PASSWORD
86
-                               SYSTEM_TYPE
87
-                               SSL_PROTOCOLS
88
-                               SSL_CIPHERS
89
-                               SSH_CIPHERS
90
-                               SSH_MACS
91
-                               SSH_KEX
92
-                               SSH_HOST_KEY_ALGORITHMS
93
-                               SSH_PASSWORDS
94
-                               REFRESH_GPG_KEYS_HOURS
95
-                               GPG_KEYSERVER
96
-                               ENABLE_SOCIAL_KEY_MANAGEMENT
97
-                               MY_USERNAME
98
-                               DOMAIN_NAME
99
-                               DEFAULT_DOMAIN_NAME
100
-                               DEFAULT_DOMAIN_CODE
101
-                               NAMESERVER1
102
-                               NAMESERVER2
103
-                               GET_IP_ADDRESS_URL
104
-                               DDNS_PROVIDER
105
-                               DDNS_USERNAME
106
-                               DDNS_PASSWORD
107
-                               LOCAL_NETWORK_STATIC_IP_ADDRESS
108
-                               ROUTER_IP_ADDRESS
109
-                               CPU_CORES
110
-                               WEBSERVER_LOG_LEVEL
111
-                               ROUTE_THROUGH_TOR
112
-                               MY_NAME
113
-                               MY_EMAIL_ADDRESS
114
-                               INSTALLING_ON_BBB
115
-                               SSH_PORT
116
-                               INSTALLED_WITHIN_DOCKER
117
-                               GPG_ENCRYPT_STORED_EMAIL
118
-                               MY_GPG_PUBLIC_KEY
119
-                               MY_GPG_PRIVATE_KEY
120
-                               MY_GPG_PUBLIC_KEY_ID
121
-                               USB_DRIVE
122
-                               MAX_PHP_MEMORY
123
-                               TLS_TIME_SOURCE1
124
-                               TLS_TIME_SOURCE2
125
-                               ONION_ONLY
126
-                               DEFAULT_LANGUAGE
127
-                               MINIMAL_INSTALL
128
-                               LETSENCRYPT_SERVER
129
-                               WIFI_INTERFACE
130
-                               WIFI_SSID
131
-                               WIFI_TYPE
132
-                               WIFI_PASSPHRASE
133
-                               WIFI_HOTSPOT
134
-                               WIFI_NETWORKS_FILE
135
-                               DEFAULT_SEARCH
136
-                               SEARCH_ENGINE_PASSWORD
137
-                               PROJECT_WEBSITE
138
-                               PROJECT_REPO
139
-                               GPGIT_REPO
140
-                               GPGIT_COMMIT
141
-                               NGINX_ENSITE_REPO
142
-                               NGINX_ENSITE_REPO
143
-                               NGINX_ENSITE_COMMIT
144
-                               CLEANUP_MAILDIR_COMMIT
145
-                               CLEANUP_MAILDIR_REPO
146
-                               INADYN_REPO
147
-                               INADYN_COMMIT
148
-                               DH_KEYLENGTH
149
-                               WIFI_CHANNEL
150
-                               IPV6_NETWORK
151
-                               HWRNG_TYPE
152
-                               ENABLE_BABEL
153
-                               ENABLE_BATMAN
154
-                               ENABLE_CJDNS
155
-                               PUBLIC_MAILING_LIST)
156
-
157
-        for v in "${read_config_variables[@]}"
168
+        for v in "${configuration_variables[@]}"
158
         do
169
         do
159
             read_config_param "$v"
170
             read_config_param "$v"
160
         done
171
         done