Explorar el Código

Consolidation of configuration variables

Bob Mottram hace 8 años
padre
commit
811a39a924
Se han modificado 2 ficheros con 104 adiciones y 139 borrados
  1. 17
    63
      src/freedombone-config
  2. 87
    76
      src/freedombone-utils-config

+ 17
- 63
src/freedombone-config Ver fichero

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

+ 87
- 76
src/freedombone-utils-config Ver fichero

@@ -28,6 +28,81 @@
28 28
 # You should have received a copy of the GNU Affero General Public License
29 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 106
 function read_config_param {
32 107
     param_name="$1"
33 108
 
@@ -63,6 +138,17 @@ function write_config_param {
63 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 152
 function read_configuration_values {
67 153
     # if not installing on a Beaglebone then use sdb as the USB drive by default
68 154
     if [ ! $INSTALLING_ON_BBB ]; then
@@ -79,82 +165,7 @@ function read_configuration_values {
79 165
             cp $CONFIGURATION_FILE /root/${PROJECT_NAME}.cfg
80 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 169
         do
159 170
             read_config_param "$v"
160 171
         done