|
@@ -36,13 +36,23 @@ export TEXTDOMAINDIR="/usr/share/locale"
|
36
|
36
|
|
37
|
37
|
CONFIGURATION_FILE=/root/${PROJECT_NAME}.cfg
|
38
|
38
|
|
|
39
|
+UTILS_FILES=/usr/share/${PROJECT_NAME}/utils/${PROJECT_NAME}-utils-*
|
|
40
|
+for f in $UTILS_FILES
|
|
41
|
+do
|
|
42
|
+ source $f
|
|
43
|
+done
|
|
44
|
+
|
|
45
|
+APP_FILES=/usr/share/${PROJECT_NAME}/apps/${PROJECT_NAME}-app-*
|
|
46
|
+for f in $APP_FILES
|
|
47
|
+do
|
|
48
|
+ source $f
|
|
49
|
+done
|
|
50
|
+
|
39
|
51
|
MY_USERNAME=$1
|
40
|
52
|
SSH_PUBLIC_KEY="$2"
|
41
|
53
|
GPG_KEYSERVER='hkp://keys.gnupg.net'
|
42
|
54
|
SSH_PORT=2222
|
43
|
55
|
COMPLETION_FILE=$HOME/${PROJECT_NAME}-completed.txt
|
44
|
|
-SIP_EXTENSION=
|
45
|
|
-FULLBLOG_DOMAIN_NAME=
|
46
|
56
|
DEFAULT_DOMAIN_NAME=
|
47
|
57
|
|
48
|
58
|
if [ ! $MY_USERNAME ]; then
|
|
@@ -199,173 +209,21 @@ chown $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/README
|
199
|
209
|
chown $MY_USERNAME:$MY_USERNAME $MY_GPG_PUBLIC_KEY
|
200
|
210
|
chmod 600 /home/$MY_USERNAME/README
|
201
|
211
|
|
202
|
|
-if grep -q "install_xmpp" $COMPLETION_FILE; then
|
203
|
|
- echo $"Adding an xmpp account for $MY_USERNAME"
|
204
|
|
- ${PROJECT_NAME}-addxmpp -e "$MY_USERNAME@$HOSTNAME" -p "$NEW_USER_PASSWORD"
|
205
|
|
- if [ ! "$?" = "0" ]; then
|
206
|
|
- echo $"xmpp account not created"
|
207
|
|
- userdel -r $MY_USERNAME
|
208
|
|
- exit 8
|
209
|
|
- fi
|
210
|
|
-fi
|
211
|
|
-
|
212
|
|
-if grep -q "install_xmpp_client" $COMPLETION_FILE; then
|
213
|
|
- echo $"Adding xmpp client setup"
|
214
|
|
- XMPP_CLIENT_DIR=/home/$MY_USERNAME/.local/share/profanity
|
215
|
|
- XMPP_CLIENT_ACCOUNTS=$XMPP_CLIENT_DIR/accounts
|
216
|
|
- if [ ! -d $XMPP_CLIENT_DIR ]; then
|
217
|
|
- mkdir -p $XMPP_CLIENT_DIR
|
218
|
|
- fi
|
219
|
|
- if [ ! -d /home/$MY_USERNAME/.config/profanity ]; then
|
220
|
|
- mkdir -p /home/$MY_USERNAME/.config/profanity
|
221
|
|
- fi
|
222
|
|
- echo "[${MY_USERNAME}@${HOSTNAME}]" > $XMPP_CLIENT_ACCOUNTS
|
223
|
|
- echo 'enabled=true' >> $XMPP_CLIENT_ACCOUNTS
|
224
|
|
- echo "jid=${MY_USERNAME}@${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
225
|
|
- echo 'resource=profanity' >> $XMPP_CLIENT_ACCOUNTS
|
226
|
|
- echo "muc.service=conference.${HOSTNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
227
|
|
- echo "muc.nick=${MY_USERNAME}" >> $XMPP_CLIENT_ACCOUNTS
|
228
|
|
- echo 'presence.last=online' >> $XMPP_CLIENT_ACCOUNTS
|
229
|
|
- echo 'presence.login=online' >> $XMPP_CLIENT_ACCOUNTS
|
230
|
|
- echo 'priority.online=0' >> $XMPP_CLIENT_ACCOUNTS
|
231
|
|
- echo 'priority.chat=0' >> $XMPP_CLIENT_ACCOUNTS
|
232
|
|
- echo 'priority.away=0' >> $XMPP_CLIENT_ACCOUNTS
|
233
|
|
- echo 'priority.xa=0' >> $XMPP_CLIENT_ACCOUNTS
|
234
|
|
- echo 'priority.dnd=0' >> $XMPP_CLIENT_ACCOUNTS
|
235
|
|
-
|
236
|
|
- echo '[connection]' > /home/$MY_USERNAME/.config/profanity/profrc
|
237
|
|
- echo "account=${MY_USERNAME}@${HOSTNAME}" >> /home/$MY_USERNAME/.config/profanity/profrc
|
238
|
|
-
|
239
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.local
|
240
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.config
|
241
|
|
-fi
|
242
|
|
-
|
243
|
|
-if grep -q "Blog domain" $COMPLETION_FILE; then
|
244
|
|
- FULLBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "Blog domain" | awk -F ':' '{print $2}')
|
245
|
|
- if [ ! -d /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users ]; then
|
246
|
|
- echo $'Blog users directory not found'
|
247
|
|
- if grep -q "install_xmpp" $COMPLETION_FILE; then
|
248
|
|
- ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
|
|
212
|
+echo $'Detecting installed apps...'
|
|
213
|
+detect_apps
|
|
214
|
+get_apps_installed_names
|
|
215
|
+for app_name in "${APPS_INSTALLED_NAMES[@]}"
|
|
216
|
+do
|
|
217
|
+ if [[ $(function_exists add_user_${app_name}) == "1" ]]; then
|
|
218
|
+ echo $"Adding user to ${app_name}"
|
|
219
|
+ retval=$(add_user_${app_name} "$MY_USERNAME" "$NEW_USER_PASSWORD")
|
|
220
|
+ if [[ $retval != '0' ]]; then
|
|
221
|
+ echo $"Failed with error code ${retval}"
|
|
222
|
+ ${PROJECT_NAME}-rmuser $MY_USERNAME
|
|
223
|
+ exit 672392
|
249
|
224
|
fi
|
250
|
|
- userdel -r $MY_USERNAME
|
251
|
|
- exit 9
|
252
|
|
- fi
|
253
|
|
- NEW_USER_PASSWORD_HASH=$(${PROJECT_NAME}-sec --bloghash "$NEW_USER_PASSWORD")
|
254
|
|
- if [ ${#NEW_USER_PASSWORD_HASH} -lt 8 ]; then
|
255
|
|
- echo $'Blog admin password could not be hashed'
|
256
|
|
- exit 783528
|
257
|
225
|
fi
|
258
|
|
- echo ';Password' > /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
259
|
|
- echo "password = $NEW_USER_PASSWORD_HASH" >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
260
|
|
- echo 'encryption = password_hash' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
261
|
|
- echo ';Role' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
262
|
|
- echo 'role = admin' >> /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
263
|
|
- echo "$MY_USERNAME added as a blog user"
|
264
|
|
-fi
|
265
|
|
-
|
266
|
|
-if grep -q "install_sip" $COMPLETION_FILE; then
|
267
|
|
- SIP_EXTENSION=$(${PROJECT_NAME}-sipfreeext)
|
268
|
|
- ${PROJECT_NAME}-addsipuser -u $MY_USERNAME -e $SIP_EXTENSION -p "$NEW_USER_PASSWORD"
|
269
|
|
- if [ ! "$?" = "0" ]; then
|
270
|
|
- echo $'SIP user could not be added. Ensure that extension numbers are in order and do no exceed 299'
|
271
|
|
- if grep -q "install_xmpp" $COMPLETION_FILE; then
|
272
|
|
- ${PROJECT_NAME}-rmxmpp -e "$MY_USERNAME@$HOSTNAME"
|
273
|
|
- fi
|
274
|
|
- if grep -q "Blog domain" $COMPLETION_FILE; then
|
275
|
|
- if [ -f /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini ]; then
|
276
|
|
- rm /var/www/$FULLBLOG_DOMAIN_NAME/htdocs/config/users/$MY_USERNAME.ini
|
277
|
|
- fi
|
278
|
|
- fi
|
279
|
|
- userdel -r $MY_USERNAME
|
280
|
|
- exit 10
|
281
|
|
- fi
|
282
|
|
-fi
|
283
|
|
-
|
284
|
|
-if grep -q "install_gnusocial" $COMPLETION_FILE; then
|
285
|
|
- MICROBLOG_DOMAIN_NAME=$(cat $COMPLETION_FILE | grep "gnusocial domain" | awk -F ':' '{print $2}')
|
286
|
|
- if [ -d /var/www/$MICROBLOG_DOMAIN_NAME ]; then
|
287
|
|
- cd /var/www/$MICROBLOG_DOMAIN_NAME/htdocs
|
288
|
|
- php scripts/registeruser.php -n $MY_USERNAME -w "$NEW_USER_PASSWORD" -e "$MY_USERNAME@$HOSTNAME"
|
289
|
|
- ${PROJECT_NAME}-addemail -u $MY_USERNAME -e "noreply@$MICROBLOG_DOMAIN_NAME" -g gnusocial --public no
|
290
|
|
- echo $'Created gnusocial user'
|
291
|
|
- else
|
292
|
|
- echo $"Unable to find gnusocial installation at /var/www/$MICROBLOG_DOMAIN_NAME/htdocs"
|
293
|
|
- userdel -r $MY_USERNAME
|
294
|
|
- exit 11
|
295
|
|
- fi
|
296
|
|
-fi
|
297
|
|
-
|
298
|
|
-if grep -q "install_irc_client" $COMPLETION_FILE; then
|
299
|
|
- IRC_PORT=6697
|
300
|
|
- if grep -q "IRC_PORT" $CONFIGURATION_FILE; then
|
301
|
|
- IRC_PORT=$(grep "IRC_PORT" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
302
|
|
- fi
|
303
|
|
- IRC_PASSWORD=$(cat /etc/ngircd/ngircd.conf | grep "Password =" | head -n 1 | awk -F '=' '{print $2}')
|
304
|
|
- if [ ${#IRC_PASSWORD} -lt 2 ]; then
|
305
|
|
- IRC_PASSWORD=
|
306
|
|
- fi
|
307
|
|
-
|
308
|
|
- if [ ! -d /home/$MY_USERNAME/.irssi ]; then
|
309
|
|
- mkdir /home/$MY_USERNAME/.irssi
|
310
|
|
- fi
|
311
|
|
-
|
312
|
|
- echo 'servers = (' > /home/$MY_USERNAME/.irssi/config
|
313
|
|
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
|
314
|
|
- echo ' address = "chat.freenode.net";' >> /home/$MY_USERNAME/.irssi/config
|
315
|
|
- echo ' chatnet = "Freenode";' >> /home/$MY_USERNAME/.irssi/config
|
316
|
|
- echo ' port = "6667";' >> /home/$MY_USERNAME/.irssi/config
|
317
|
|
- echo ' autoconnect = "no";' >> /home/$MY_USERNAME/.irssi/config
|
318
|
|
- echo ' },' >> /home/$MY_USERNAME/.irssi/config
|
319
|
|
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
|
320
|
|
- echo ' address = "irc.oftc.net";' >> /home/$MY_USERNAME/.irssi/config
|
321
|
|
- echo ' chatnet = "OFTC";' >> /home/$MY_USERNAME/.irssi/config
|
322
|
|
- echo ' port = "6667";' >> /home/$MY_USERNAME/.irssi/config
|
323
|
|
- echo ' autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
|
324
|
|
- echo ' },' >> /home/$MY_USERNAME/.irssi/config
|
325
|
|
- echo ' {' >> /home/$MY_USERNAME/.irssi/config
|
326
|
|
- echo " address = \"${HOSTNAME}\";" >> /home/$MY_USERNAME/.irssi/config
|
327
|
|
- echo ' chatnet = "Freedombone";' >> /home/$MY_USERNAME/.irssi/config
|
328
|
|
- echo " port = \"${IRC_PORT}\";" >> /home/$MY_USERNAME/.irssi/config
|
329
|
|
- echo ' use_ssl = "yes";' >> /home/$MY_USERNAME/.irssi/config
|
330
|
|
- echo ' ssl_verify = "no";' >> /home/$MY_USERNAME/.irssi/config
|
331
|
|
- echo ' autoconnect = "yes";' >> /home/$MY_USERNAME/.irssi/config
|
332
|
|
-
|
333
|
|
- echo ' }' >> /home/$MY_USERNAME/.irssi/config
|
334
|
|
- echo ');' >> /home/$MY_USERNAME/.irssi/config
|
335
|
|
- echo '' >> /home/$MY_USERNAME/.irssi/config
|
336
|
|
- echo 'chatnets = {' >> /home/$MY_USERNAME/.irssi/config
|
337
|
|
- echo ' Freedombone = {' >> /home/$MY_USERNAME/.irssi/config
|
338
|
|
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
|
339
|
|
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
|
340
|
|
- echo ' max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
|
341
|
|
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
|
342
|
|
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
|
343
|
|
- echo ' Freenode = {' >> /home/$MY_USERNAME/.irssi/config
|
344
|
|
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
|
345
|
|
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
|
346
|
|
- echo ' max_msgs = "4";' >> /home/$MY_USERNAME/.irssi/config
|
347
|
|
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
|
348
|
|
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
|
349
|
|
- echo ' OFTC = {' >> /home/$MY_USERNAME/.irssi/config
|
350
|
|
- echo ' type = "IRC";' >> /home/$MY_USERNAME/.irssi/config
|
351
|
|
- echo ' max_kicks = "1";' >> /home/$MY_USERNAME/.irssi/config
|
352
|
|
- echo ' max_msgs = "1";' >> /home/$MY_USERNAME/.irssi/config
|
353
|
|
- echo ' max_whois = "1";' >> /home/$MY_USERNAME/.irssi/config
|
354
|
|
- echo ' };' >> /home/$MY_USERNAME/.irssi/config
|
355
|
|
- echo '};' >> /home/$MY_USERNAME/.irssi/config
|
356
|
|
- echo '' >> /home/$MY_USERNAME/.irssi/config
|
357
|
|
- echo 'channels = (' >> /home/$MY_USERNAME/.irssi/config
|
358
|
|
- echo ' { name = "#freedombone"; chatnet = "Freedombone"; autojoin = "Yes"; },' >> /home/$MY_USERNAME/.irssi/config
|
359
|
|
- echo ');' >> /home/$MY_USERNAME/.irssi/config
|
360
|
|
- echo '' >> /home/$MY_USERNAME/.irssi/config
|
361
|
|
- echo 'settings = {' >> /home/$MY_USERNAME/.irssi/config
|
362
|
|
- echo " core = { real_name = \"$MY_NAME\"; user_name = \"$MY_USERNAME\"; nick = \"$MY_USERNAME\"; };" >> /home/$MY_USERNAME/.irssi/config
|
363
|
|
- echo ' "fe-text" = { actlist_sort = "refnum"; };' >> /home/$MY_USERNAME/.irssi/config
|
364
|
|
- echo '};' >> /home/$MY_USERNAME/.irssi/config
|
365
|
|
- echo 'ignores = ( { level = "CTCPS"; } );' >> /home/$MY_USERNAME/.irssi/config
|
366
|
|
-
|
367
|
|
- chown -R $MY_USERNAME:$MY_USERNAME /home/$MY_USERNAME/.irssi
|
368
|
|
-fi
|
|
226
|
+done
|
369
|
227
|
|
370
|
228
|
if [ -f /etc/nginx/.htpasswd ]; then
|
371
|
229
|
if ! grep "${MY_USERNAME}:" /etc/nginx/.htpasswd; then
|
|
@@ -373,19 +231,6 @@ if [ -f /etc/nginx/.htpasswd ]; then
|
373
|
231
|
fi
|
374
|
232
|
fi
|
375
|
233
|
|
376
|
|
-# add user to the sipwitch group
|
377
|
|
-if [ -f /etc/sipwitch.conf ]; then
|
378
|
|
- usermod -aG sipwitch $MY_USERNAME
|
379
|
|
-fi
|
380
|
|
-
|
381
|
|
-# add user for SIP STUN/TURN
|
382
|
|
-if [ -d /etc/turnserver ]; then
|
383
|
|
- if grep -q "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE; then
|
384
|
|
- DEFAULT_DOMAIN_NAME=$(grep "DEFAULT_DOMAIN_NAME" $CONFIGURATION_FILE | awk -F '=' '{print $2}')
|
385
|
|
- echo "${MY_USERNAME}:${NEW_USER_PASSWORD}:${DEFAULT_DOMAIN_NAME}:authorized" >> /etc/turnserver/turnusers.txt
|
386
|
|
- fi
|
387
|
|
-fi
|
388
|
|
-
|
389
|
234
|
# add user menu on ssh login
|
390
|
235
|
if ! grep -q 'control' /home/$MY_USERNAME/.bashrc; then
|
391
|
236
|
echo 'control' >> /home/$MY_USERNAME/.bashrc
|
|
@@ -393,9 +238,6 @@ fi
|
393
|
238
|
|
394
|
239
|
clear
|
395
|
240
|
echo $"New user $MY_USERNAME was created"
|
396
|
|
-if [ $SIP_EXTENSION ]; then
|
397
|
|
- echo $"Their SIP phone extension is $SIP_EXTENSION"
|
398
|
|
-fi
|
399
|
241
|
echo $"Their login password is $NEW_USER_PASSWORD"
|
400
|
242
|
echo ''
|
401
|
243
|
echo $'IMPORTANT: Make a note of the password, because it will not be saved'
|