|
@@ -37,7 +37,7 @@ export TEXTDOMAINDIR="/usr/share/locale"
|
37
|
37
|
|
38
|
38
|
PROJECT_INSTALL_DIR=/usr/local/bin
|
39
|
39
|
if [ -f /usr/bin/${PROJECT_NAME} ]; then
|
40
|
|
- PROJECT_INSTALL_DIR=/usr/bin
|
|
40
|
+ PROJECT_INSTALL_DIR=/usr/bin
|
41
|
41
|
fi
|
42
|
42
|
|
43
|
43
|
source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
|
|
@@ -45,242 +45,242 @@ source $PROJECT_INSTALL_DIR/${PROJECT_NAME}-vars
|
45
|
45
|
command_options=$1
|
46
|
46
|
|
47
|
47
|
if [[ $command_options == "menuconfig-full" ]]; then
|
48
|
|
- MINIMAL_INSTALL="no"
|
49
|
|
- command_options="menuconfig"
|
|
48
|
+ MINIMAL_INSTALL="no"
|
|
49
|
+ command_options="menuconfig"
|
50
|
50
|
fi
|
51
|
51
|
|
52
|
52
|
if [[ $command_options == "menuconfig-onion" ]]; then
|
53
|
|
- MINIMAL_INSTALL="yes"
|
54
|
|
- ONION_ONLY="yes"
|
55
|
|
- command_options="menuconfig"
|
|
53
|
+ MINIMAL_INSTALL="yes"
|
|
54
|
+ ONION_ONLY="yes"
|
|
55
|
+ command_options="menuconfig"
|
56
|
56
|
fi
|
57
|
57
|
|
58
|
58
|
if [[ $command_options == "menuconfig" ]]; then
|
59
|
|
- interactive_configuration
|
|
59
|
+ interactive_configuration
|
60
|
60
|
else
|
61
|
|
- while [[ $# > 1 ]]
|
62
|
|
- do
|
63
|
|
- key="$1"
|
|
61
|
+ while [[ $# > 1 ]]
|
|
62
|
+ do
|
|
63
|
+ key="$1"
|
64
|
64
|
|
65
|
|
- case $key in
|
66
|
|
- -h|--help)
|
67
|
|
- show_help
|
68
|
|
- ;;
|
69
|
|
- # load a configuration file
|
70
|
|
- -c|--config)
|
71
|
|
- shift
|
72
|
|
- CONFIGURATION_FILE="$1"
|
73
|
|
- INSTALLING_FROM_CONFIGURATION_FILE="yes"
|
74
|
|
- break
|
75
|
|
- ;;
|
76
|
|
- # username within /home
|
77
|
|
- -u|--user)
|
78
|
|
- shift
|
79
|
|
- MY_USERNAME="$1"
|
80
|
|
- ;;
|
81
|
|
- # microblog domain name
|
82
|
|
- --microblogdomain)
|
83
|
|
- shift
|
84
|
|
- MICROBLOG_DOMAIN_NAME="$1"
|
85
|
|
- ;;
|
86
|
|
- # wiki domain name
|
87
|
|
- --wikidomain)
|
88
|
|
- shift
|
89
|
|
- WIKI_DOMAIN_NAME="$1"
|
90
|
|
- ;;
|
91
|
|
- # blog domain name
|
92
|
|
- --blogdomain)
|
93
|
|
- shift
|
94
|
|
- FULLBLOG_DOMAIN_NAME="$1"
|
95
|
|
- ;;
|
96
|
|
- # hubzilla domain name
|
97
|
|
- --hubzilladomain)
|
98
|
|
- shift
|
99
|
|
- HUBZILLA_DOMAIN_NAME="$1"
|
100
|
|
- ;;
|
101
|
|
- # git hosting domain name
|
102
|
|
- --gitdomain)
|
103
|
|
- shift
|
104
|
|
- GIT_DOMAIN_NAME="$1"
|
105
|
|
- ;;
|
106
|
|
- # default domain name
|
107
|
|
- -d|--domain)
|
108
|
|
- shift
|
109
|
|
- DEFAULT_DOMAIN_NAME="$1"
|
110
|
|
- ;;
|
111
|
|
- # The type of system
|
112
|
|
- -s|--system)
|
113
|
|
- shift
|
114
|
|
- SYSTEM_TYPE="$1"
|
115
|
|
- ;;
|
116
|
|
- # The dynamic DNS provider
|
117
|
|
- --ddns)
|
118
|
|
- shift
|
119
|
|
- DDNS_PROVIDER="$1"
|
120
|
|
- ;;
|
121
|
|
- # Username for the synamic DNS provider
|
122
|
|
- --ddnsuser)
|
123
|
|
- shift
|
124
|
|
- DDNS_USERNAME="$1"
|
125
|
|
- ;;
|
126
|
|
- # Password for the synamic DNS provider
|
127
|
|
- --ddnspass)
|
128
|
|
- shift
|
129
|
|
- DDNS_PASSWORD="$1"
|
130
|
|
- ;;
|
131
|
|
- # Whether this installation is on a Beaglebone Black
|
132
|
|
- --bbb)
|
133
|
|
- INSTALLING_ON_BBB="yes"
|
134
|
|
- ;;
|
135
|
|
- # Domain name to use as a TLS time source
|
136
|
|
- -t|--time)
|
137
|
|
- shift
|
138
|
|
- TLS_TIME_SOURCE1="$1"
|
139
|
|
- ;;
|
140
|
|
- # Static IP address for the system
|
141
|
|
- --ip)
|
142
|
|
- shift
|
143
|
|
- LOCAL_NETWORK_STATIC_IP_ADDRESS=$1
|
144
|
|
- ;;
|
145
|
|
- # IP address for the internet router
|
146
|
|
- --iprouter)
|
147
|
|
- shift
|
148
|
|
- ROUTER_IP_ADDRESS=$1
|
149
|
|
- ;;
|
150
|
|
- # ssh port
|
151
|
|
- --ssh)
|
152
|
|
- shift
|
153
|
|
- SSH_PORT=$1
|
154
|
|
- ;;
|
155
|
|
- # public mailing list name
|
156
|
|
- --list)
|
157
|
|
- shift
|
158
|
|
- PUBLIC_MAILING_LIST="$1"
|
159
|
|
- ;;
|
160
|
|
- # Number of CPU cores
|
161
|
|
- --cores)
|
162
|
|
- shift
|
163
|
|
- CPU_CORES=$1
|
164
|
|
- ;;
|
165
|
|
- # my name
|
166
|
|
- --name)
|
167
|
|
- shift
|
168
|
|
- MY_NAME="$1"
|
169
|
|
- ;;
|
170
|
|
- # my email address
|
171
|
|
- --email)
|
172
|
|
- shift
|
173
|
|
- MY_EMAIL_ADDRESS="$1"
|
174
|
|
- ;;
|
175
|
|
- # USB drive
|
176
|
|
- --usb)
|
177
|
|
- shift
|
178
|
|
- USB_DRIVE=$1
|
179
|
|
- ;;
|
180
|
|
- # Enable CJDNS
|
181
|
|
- --cjdns)
|
182
|
|
- shift
|
183
|
|
- ENABLE_CJDNS="yes"
|
184
|
|
- ;;
|
185
|
|
- # Enable B.A.T.M.A.N
|
186
|
|
- --batman)
|
187
|
|
- shift
|
188
|
|
- ENABLE_BATMAN="yes"
|
189
|
|
- ;;
|
190
|
|
- # Enable Babel
|
191
|
|
- --babel)
|
192
|
|
- shift
|
193
|
|
- ENABLE_BABEL="yes"
|
194
|
|
- ;;
|
195
|
|
- # VoIP server password
|
196
|
|
- --vpass)
|
197
|
|
- shift
|
198
|
|
- VOIP_SERVER_PASSWORD=$1
|
199
|
|
- ;;
|
200
|
|
- # VoIP server port
|
201
|
|
- --vport)
|
202
|
|
- shift
|
203
|
|
- VOIP_PORT=$1
|
204
|
|
- ;;
|
205
|
|
- # DNS Nameserver 1
|
206
|
|
- --ns1)
|
207
|
|
- shift
|
208
|
|
- NAMESERVER1=$1
|
209
|
|
- ;;
|
210
|
|
- # DNS Nameserver 2
|
211
|
|
- --ns2)
|
212
|
|
- shift
|
213
|
|
- NAMESERVER2=$1
|
214
|
|
- ;;
|
215
|
|
- # Debian repository
|
216
|
|
- --repo)
|
217
|
|
- shift
|
218
|
|
- DEBIAN_REPO=$1
|
219
|
|
- ;;
|
220
|
|
- # minimal install
|
221
|
|
- --minimal)
|
222
|
|
- shift
|
223
|
|
- MINIMAL_INSTALL=$1
|
224
|
|
- ;;
|
225
|
|
- *)
|
226
|
|
- # unknown option
|
227
|
|
- ;;
|
228
|
|
- esac
|
229
|
|
- shift
|
230
|
|
- done
|
|
65
|
+ case $key in
|
|
66
|
+ -h|--help)
|
|
67
|
+ show_help
|
|
68
|
+ ;;
|
|
69
|
+ # load a configuration file
|
|
70
|
+ -c|--config)
|
|
71
|
+ shift
|
|
72
|
+ CONFIGURATION_FILE="$1"
|
|
73
|
+ INSTALLING_FROM_CONFIGURATION_FILE="yes"
|
|
74
|
+ break
|
|
75
|
+ ;;
|
|
76
|
+ # username within /home
|
|
77
|
+ -u|--user)
|
|
78
|
+ shift
|
|
79
|
+ MY_USERNAME="$1"
|
|
80
|
+ ;;
|
|
81
|
+ # microblog domain name
|
|
82
|
+ --microblogdomain)
|
|
83
|
+ shift
|
|
84
|
+ MICROBLOG_DOMAIN_NAME="$1"
|
|
85
|
+ ;;
|
|
86
|
+ # wiki domain name
|
|
87
|
+ --wikidomain)
|
|
88
|
+ shift
|
|
89
|
+ WIKI_DOMAIN_NAME="$1"
|
|
90
|
+ ;;
|
|
91
|
+ # blog domain name
|
|
92
|
+ --blogdomain)
|
|
93
|
+ shift
|
|
94
|
+ FULLBLOG_DOMAIN_NAME="$1"
|
|
95
|
+ ;;
|
|
96
|
+ # hubzilla domain name
|
|
97
|
+ --hubzilladomain)
|
|
98
|
+ shift
|
|
99
|
+ HUBZILLA_DOMAIN_NAME="$1"
|
|
100
|
+ ;;
|
|
101
|
+ # git hosting domain name
|
|
102
|
+ --gitdomain)
|
|
103
|
+ shift
|
|
104
|
+ GIT_DOMAIN_NAME="$1"
|
|
105
|
+ ;;
|
|
106
|
+ # default domain name
|
|
107
|
+ -d|--domain)
|
|
108
|
+ shift
|
|
109
|
+ DEFAULT_DOMAIN_NAME="$1"
|
|
110
|
+ ;;
|
|
111
|
+ # The type of system
|
|
112
|
+ -s|--system)
|
|
113
|
+ shift
|
|
114
|
+ SYSTEM_TYPE="$1"
|
|
115
|
+ ;;
|
|
116
|
+ # The dynamic DNS provider
|
|
117
|
+ --ddns)
|
|
118
|
+ shift
|
|
119
|
+ DDNS_PROVIDER="$1"
|
|
120
|
+ ;;
|
|
121
|
+ # Username for the synamic DNS provider
|
|
122
|
+ --ddnsuser)
|
|
123
|
+ shift
|
|
124
|
+ DDNS_USERNAME="$1"
|
|
125
|
+ ;;
|
|
126
|
+ # Password for the synamic DNS provider
|
|
127
|
+ --ddnspass)
|
|
128
|
+ shift
|
|
129
|
+ DDNS_PASSWORD="$1"
|
|
130
|
+ ;;
|
|
131
|
+ # Whether this installation is on a Beaglebone Black
|
|
132
|
+ --bbb)
|
|
133
|
+ INSTALLING_ON_BBB="yes"
|
|
134
|
+ ;;
|
|
135
|
+ # Domain name to use as a TLS time source
|
|
136
|
+ -t|--time)
|
|
137
|
+ shift
|
|
138
|
+ TLS_TIME_SOURCE1="$1"
|
|
139
|
+ ;;
|
|
140
|
+ # Static IP address for the system
|
|
141
|
+ --ip)
|
|
142
|
+ shift
|
|
143
|
+ LOCAL_NETWORK_STATIC_IP_ADDRESS=$1
|
|
144
|
+ ;;
|
|
145
|
+ # IP address for the internet router
|
|
146
|
+ --iprouter)
|
|
147
|
+ shift
|
|
148
|
+ ROUTER_IP_ADDRESS=$1
|
|
149
|
+ ;;
|
|
150
|
+ # ssh port
|
|
151
|
+ --ssh)
|
|
152
|
+ shift
|
|
153
|
+ SSH_PORT=$1
|
|
154
|
+ ;;
|
|
155
|
+ # public mailing list name
|
|
156
|
+ --list)
|
|
157
|
+ shift
|
|
158
|
+ PUBLIC_MAILING_LIST="$1"
|
|
159
|
+ ;;
|
|
160
|
+ # Number of CPU cores
|
|
161
|
+ --cores)
|
|
162
|
+ shift
|
|
163
|
+ CPU_CORES=$1
|
|
164
|
+ ;;
|
|
165
|
+ # my name
|
|
166
|
+ --name)
|
|
167
|
+ shift
|
|
168
|
+ MY_NAME="$1"
|
|
169
|
+ ;;
|
|
170
|
+ # my email address
|
|
171
|
+ --email)
|
|
172
|
+ shift
|
|
173
|
+ MY_EMAIL_ADDRESS="$1"
|
|
174
|
+ ;;
|
|
175
|
+ # USB drive
|
|
176
|
+ --usb)
|
|
177
|
+ shift
|
|
178
|
+ USB_DRIVE=$1
|
|
179
|
+ ;;
|
|
180
|
+ # Enable CJDNS
|
|
181
|
+ --cjdns)
|
|
182
|
+ shift
|
|
183
|
+ ENABLE_CJDNS="yes"
|
|
184
|
+ ;;
|
|
185
|
+ # Enable B.A.T.M.A.N
|
|
186
|
+ --batman)
|
|
187
|
+ shift
|
|
188
|
+ ENABLE_BATMAN="yes"
|
|
189
|
+ ;;
|
|
190
|
+ # Enable Babel
|
|
191
|
+ --babel)
|
|
192
|
+ shift
|
|
193
|
+ ENABLE_BABEL="yes"
|
|
194
|
+ ;;
|
|
195
|
+ # VoIP server password
|
|
196
|
+ --vpass)
|
|
197
|
+ shift
|
|
198
|
+ VOIP_SERVER_PASSWORD=$1
|
|
199
|
+ ;;
|
|
200
|
+ # VoIP server port
|
|
201
|
+ --vport)
|
|
202
|
+ shift
|
|
203
|
+ VOIP_PORT=$1
|
|
204
|
+ ;;
|
|
205
|
+ # DNS Nameserver 1
|
|
206
|
+ --ns1)
|
|
207
|
+ shift
|
|
208
|
+ NAMESERVER1=$1
|
|
209
|
+ ;;
|
|
210
|
+ # DNS Nameserver 2
|
|
211
|
+ --ns2)
|
|
212
|
+ shift
|
|
213
|
+ NAMESERVER2=$1
|
|
214
|
+ ;;
|
|
215
|
+ # Debian repository
|
|
216
|
+ --repo)
|
|
217
|
+ shift
|
|
218
|
+ DEBIAN_REPO=$1
|
|
219
|
+ ;;
|
|
220
|
+ # minimal install
|
|
221
|
+ --minimal)
|
|
222
|
+ shift
|
|
223
|
+ MINIMAL_INSTALL=$1
|
|
224
|
+ ;;
|
|
225
|
+ *)
|
|
226
|
+ # unknown option
|
|
227
|
+ ;;
|
|
228
|
+ esac
|
|
229
|
+ shift
|
|
230
|
+ done
|
231
|
231
|
fi
|
232
|
232
|
|
233
|
233
|
function parse_args {
|
234
|
|
- if [[ $NO_OF_ARGS == 0 ]]; then
|
235
|
|
- echo 'no_of_args = 0'
|
236
|
|
- show_help
|
237
|
|
- exit 0
|
238
|
|
- fi
|
|
234
|
+ if [[ $NO_OF_ARGS == 0 ]]; then
|
|
235
|
+ echo 'no_of_args = 0'
|
|
236
|
+ show_help
|
|
237
|
+ exit 0
|
|
238
|
+ fi
|
239
|
239
|
|
240
|
|
- if [ ! -d /home/$MY_USERNAME ]; then
|
241
|
|
- echo $"There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user."
|
242
|
|
- exit 1
|
243
|
|
- fi
|
244
|
|
- if [ ! "$DEFAULT_DOMAIN_NAME" ]; then
|
245
|
|
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
246
|
|
- echo 'No default domain specified'
|
247
|
|
- show_help
|
248
|
|
- exit 2
|
249
|
|
- fi
|
250
|
|
- fi
|
251
|
|
- if [ ! $MY_USERNAME ]; then
|
252
|
|
- echo 'No username specified'
|
253
|
|
- show_help
|
254
|
|
- exit 3
|
255
|
|
- fi
|
256
|
|
- if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
257
|
|
- if [[ $ONION_ONLY == "no" ]]; then
|
258
|
|
- if [ ! $DDNS_USERNAME ]; then
|
259
|
|
- echo $'Please provide the username for your dynamic DNS provider with the --ddnsuser option'
|
260
|
|
- exit 7823
|
261
|
|
- fi
|
262
|
|
- if [ ! $DDNS_PASSWORD ]; then
|
263
|
|
- echo $'Please provide the password for your dynamic DNS provider with the --ddnspass option'
|
264
|
|
- exit 6382
|
265
|
|
- fi
|
266
|
|
- fi
|
267
|
|
- fi
|
268
|
|
- if [ ! $SYSTEM_TYPE ]; then
|
269
|
|
- SYSTEM_TYPE=$VARIANT_FULL
|
270
|
|
- fi
|
271
|
|
- if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_DEVELOPER && $SYSTEM_TYPE != $VARIANT_MESH && $SYSTEM_TYPE != $VARIANT_FULL ]]; then
|
272
|
|
- echo $"'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant."
|
273
|
|
- exit 30
|
274
|
|
- fi
|
|
240
|
+ if [ ! -d /home/$MY_USERNAME ]; then
|
|
241
|
+ echo $"There is no user '$MY_USERNAME' on the system. Use 'adduser $MY_USERNAME' to create the user."
|
|
242
|
+ exit 1
|
|
243
|
+ fi
|
|
244
|
+ if [ ! "$DEFAULT_DOMAIN_NAME" ]; then
|
|
245
|
+ if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
|
246
|
+ echo 'No default domain specified'
|
|
247
|
+ show_help
|
|
248
|
+ exit 2
|
|
249
|
+ fi
|
|
250
|
+ fi
|
|
251
|
+ if [ ! $MY_USERNAME ]; then
|
|
252
|
+ echo 'No username specified'
|
|
253
|
+ show_help
|
|
254
|
+ exit 3
|
|
255
|
+ fi
|
|
256
|
+ if [[ $SYSTEM_TYPE != "$VARIANT_MESH" ]]; then
|
|
257
|
+ if [[ $ONION_ONLY == "no" ]]; then
|
|
258
|
+ if [ ! $DDNS_USERNAME ]; then
|
|
259
|
+ echo $'Please provide the username for your dynamic DNS provider with the --ddnsuser option'
|
|
260
|
+ exit 7823
|
|
261
|
+ fi
|
|
262
|
+ if [ ! $DDNS_PASSWORD ]; then
|
|
263
|
+ echo $'Please provide the password for your dynamic DNS provider with the --ddnspass option'
|
|
264
|
+ exit 6382
|
|
265
|
+ fi
|
|
266
|
+ fi
|
|
267
|
+ fi
|
|
268
|
+ if [ ! $SYSTEM_TYPE ]; then
|
|
269
|
+ SYSTEM_TYPE=$VARIANT_FULL
|
|
270
|
+ fi
|
|
271
|
+ if [[ $SYSTEM_TYPE != $VARIANT_WRITER && $SYSTEM_TYPE != $VARIANT_CLOUD && $SYSTEM_TYPE != $VARIANT_CHAT && $SYSTEM_TYPE != $VARIANT_MAILBOX && $SYSTEM_TYPE != $VARIANT_NONMAILBOX && $SYSTEM_TYPE != $VARIANT_SOCIAL && $SYSTEM_TYPE != $VARIANT_MEDIA && $SYSTEM_TYPE != $VARIANT_DEVELOPER && $SYSTEM_TYPE != $VARIANT_MESH && $SYSTEM_TYPE != $VARIANT_FULL ]]; then
|
|
272
|
+ echo $"'$SYSTEM_TYPE' is an unrecognised ${PROJECT_NAME} variant."
|
|
273
|
+ exit 30
|
|
274
|
+ fi
|
275
|
275
|
}
|
276
|
276
|
|
277
|
277
|
# run some initial tests
|
278
|
278
|
${PROJECT_NAME}-tests
|
279
|
279
|
if [ ! "$?" = "0" ]; then
|
280
|
|
- exit 768252
|
|
280
|
+ exit 768252
|
281
|
281
|
fi
|
282
|
282
|
|
283
|
|
-upgrade_installation
|
|
283
|
+upgrade_installation_from_previous_versions
|
284
|
284
|
setup_utils
|
285
|
285
|
setup_email
|
286
|
286
|
setup_web
|