@@ -12,7 +12,7 @@ sleep 2
12
12
13
13
# the "lpms" is an abbreviation of Linux Package Management System
14
14
lpms=" "
15
- for i in apk dnf yum apt zypper
15
+ for i in apk dnf yum apt zypper pacman
16
16
do
17
17
if [ -x " $( command -v $i ) " ]; then
18
18
if [ " $i " == " apk" ]
33
33
lpms=$i
34
34
break
35
35
elif [[ $( grep -Pow ' ID_LIKE=\K[^;]*' /etc/os-release) == * " suse" * ]]
36
+ then
37
+ lpms=$i
38
+ break
39
+ elif [ " $i " == " pacman" ]
36
40
then
37
41
lpms=$i
38
42
break
87
91
then
88
92
sudo zypper remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine runc
89
93
fi
94
+ elif [ " $lpms " == " pacman" ]
95
+ then
96
+ sudo pacman -Rssn podman-docker podman-compose
90
97
else
91
98
echo " "
92
99
echo " could not be detected package management system"
@@ -175,6 +182,10 @@ then
175
182
176
183
# Installed=`sudo apt-cache policy docker-ce | sed -n '2p' | cut -c 14-`
177
184
# Candidate=`sudo apt-cache policy docker-ce | sed -n '3p' | cut -c 14-`
185
+ elif [ " $lpms " == " pacman" ]
186
+ then
187
+ sudo pacman -Syu --noconfirm
188
+ sudo pacman -Ss docker docker-buildx
178
189
else
179
190
echo " "
180
191
echo " could not be detected package management system"
@@ -266,27 +277,97 @@ clear
266
277
# Setup project variables
267
278
# #########
268
279
echo " "
269
- echo " "
270
280
echo " ======================================================================="
271
281
echo " | Please enter project related variables..."
272
282
echo " ======================================================================="
273
283
echo " "
274
284
sleep 2
275
285
286
+ # set the host
287
+ which_h=" "
288
+ items=(" localhost" " remotehost" )
289
+ PS3=" which computer command line are you on? Select the host: "
290
+ select h in " ${items[@]} "
291
+ do
292
+ case $REPLY in
293
+ 1)
294
+ which_h=$h
295
+ break ;;
296
+ 2)
297
+ which_h=$h
298
+ break ;;
299
+ * )
300
+ echo " Invalid choice $REPLY " ;;
301
+ esac
302
+ done
303
+ echo " Ok."
304
+
276
305
# set your domain name
277
- domain_name=" "
278
- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
306
+ if [ " $which_h " == " localhost" ]
307
+ then
308
+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
309
+ : ${domain_name:= localhost}
310
+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
311
+ else
312
+ domain_name=" "
313
+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
314
+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
315
+ fi
279
316
[ -z $domain_name ] && domain_name=" NULL"
280
317
host -N 0 $domain_name 2>&1 > /dev/null
281
318
while [ $? -ne 0 ]
282
319
do
283
320
echo " Try again"
284
- read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
321
+ sudo -- sh -c -e " sed -i '/$domain_name /d' /etc/hosts"
322
+ if [ " $which_h " == " localhost" ]
323
+ then
324
+ read -p ' Enter Domain Name(default : localhost or e.g. : example.com): ' domain_name
325
+ : ${domain_name:= localhost}
326
+ [ " $domain_name " != " localhost" ] && sudo -- sh -c -e " grep -Eq '$domain_name ' /etc/hosts || echo '127.0.0.1 $domain_name ' >> /etc/hosts"
327
+ else
328
+ read -p ' Enter Domain Name(e.g. : example.com): ' domain_name
329
+ # [ "$domain_name" != "localhost" ] && sudo -- sh -c -e "sed -i '/$domain_name/d' /etc/hosts"
330
+ fi
285
331
[ -z $domain_name ] && domain_name=" NULL"
286
332
host -N 0 $domain_name 2>&1 > /dev/null
287
333
done
288
334
echo " Ok."
289
335
336
+ ssl_snippet=" "
337
+ if [ " $which_h " == " localhost" ]
338
+ then
339
+ ssl_snippet=" echo 'Generated Self-signed SSL Certificate for localhost'"
340
+ if [ " $lpms " == " apk" ]
341
+ then
342
+ sudo apk add --no-cache nss-tools go git
343
+ elif [ " $lpms " == " dnf" ]
344
+ then
345
+ sudo dnf install nss-tools go git
346
+ elif [ " $lpms " == " yum" ]
347
+ then
348
+ sudo yum install nss-tools go git
349
+ elif [ " $lpms " == " zypper" ]
350
+ then
351
+ sudo zypper install mozilla-nss-tools go git
352
+ elif [ " $lpms " == " apt" ]
353
+ then
354
+ sudo apt install libnss3-tools go git
355
+ elif [ " $lpms " == " pacman" ]
356
+ then
357
+ sudo pacman -S nss go git
358
+ else
359
+ echo " "
360
+ echo " could not be detected package management system"
361
+ echo " "
362
+ exit 0
363
+ fi
364
+ sudo rm -Rf mkcert && git clone https://github.com/FiloSottile/mkcert && cd mkcert && go build -ldflags " -X main.Version=$( git describe --tags) "
365
+ sudo mkcert -uninstall && mkcert -install && mkcert -key-file privkey.pem -cert-file chain.pem $domain_name * .$domain_name && sudo cat privkey.pem chain.pem > fullchain.pem && sudo mkdir -p ../certbot/live/$domain_name && sudo mv * .pem ../certbot/live/$domain_name && cd ..
366
+ echo " Ok."
367
+ else
368
+ ssl_snippet=" certbot certonly --webroot --webroot-path \/tmp\/acme-challenge --rsa-key-size 4096 --non-interactive --agree-tos --no-eff-email --force-renewal --email \$ \{LETSENCRYPT_EMAIL\} -d \$ \{DOMAIN_NAME\} -d www.\$ \{DOMAIN_NAME\}"
369
+ fi
370
+
290
371
# set parameters in env.example file
291
372
email=" "
292
373
regex=" ^[a-zA-Z0-9\._-]+\@[a-zA-Z0-9._-]+\.[a-zA-Z]+\$ "
@@ -410,22 +491,23 @@ echo "Ok."
410
491
411
492
read -p " Apply changes (y/n)? " choice
412
493
case " $choice " in
413
- y|Y ) clear; echo " Yes! Proceeding now..." ;;
494
+ y|Y ) clear; echo " " ; echo " Yes! Proceeding now..." ;;
414
495
n|N ) echo " No! Aborting now..." ; exit 0;;
415
496
* ) echo " Invalid input! Aborting now..." ; exit 0;;
416
497
esac
417
498
418
- cp ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
419
- cp ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
499
+ \ c p ./phpmyadmin/apache2/sites-available/default-ssl.sample.conf ./phpmyadmin/apache2/sites-available/default-ssl.conf
500
+ \ c p ./database/phpmyadmin/sql/create_tables.sql.template.example ./database/phpmyadmin/sql/create_tables.sql.template
420
501
421
- cp env.example .env
502
+ \ c p env.example .env
422
503
423
504
sed -i " s/db_authentication_password/${db_authentication_password} /" ./database/phpmyadmin/sql/create_tables.sql.template
424
505
sed -i " s|db_package_manager|${db_package_manager} |" .env
425
506
sed -i ' s/db_admin_commandline/' $db_admin_commandline ' /' .env
426
507
sed -i ' s/example.com/' $domain_name ' /' .env
427
508
sed -i ' s/example.com/' $domain_name ' /g' ./phpmyadmin/apache2/sites-available/default-ssl.conf
428
509
sed -i
' s/[email protected] /' $email ' /' .env
510
+ sed -i " s/ssl_snippet/$ssl_snippet /" .env
429
511
sed -i ' s/which_db/' $which_db ' /g' .env
430
512
sed -i ' s/db_username/' $db_username ' /g' .env
431
513
sed -i ' s/db_password/' $db_password ' /g' .env
0 commit comments