|
@@ -4,13 +4,15 @@
|
4
|
4
|
# license: GPL 2.0
|
5
|
5
|
# create 2022
|
6
|
6
|
#
|
7
|
|
-version="0.3.0";
|
|
7
|
+version="0.3.1";
|
8
|
8
|
sname="avto4certbot";
|
9
|
9
|
# необходимы для работы: nginx,certbot (и если почтовый сервер то сервисы в restartMail)
|
10
|
10
|
# create new cert or update
|
11
|
11
|
path_ssl="/etc/ssl";
|
12
|
12
|
path_cert="/etc/letsencrypt/live";
|
13
|
|
-source "/etc/scripts/avto4certbot/avto4certbot.conf";
|
|
13
|
+# script path
|
|
14
|
+path_script="$(dirname $(readlink --canonicalize-existing "$0"))"
|
|
15
|
+source "$path_script/avto4certbot.conf";
|
14
|
16
|
|
15
|
17
|
## - nginx
|
16
|
18
|
nginx_enable="/etc/nginx/sites-enabled";
|
|
@@ -23,6 +25,11 @@ mailservice=(
|
23
|
25
|
"rspamd"
|
24
|
26
|
);
|
25
|
27
|
|
|
28
|
+##--@S static values
|
|
29
|
+# depends
|
|
30
|
+pkgdep=("curl" "nginx" "certbot" "letsencrypt") # packages
|
|
31
|
+get_tools=("curl" "nginx" "certbot" "letsencrypt")
|
|
32
|
+
|
26
|
33
|
##
|
27
|
34
|
www_root="/tmp/letsencrypt";
|
28
|
35
|
|
|
@@ -42,6 +49,33 @@ opt=$2;
|
42
|
49
|
scan_list=();
|
43
|
50
|
#
|
44
|
51
|
|
|
52
|
+#--@F Check the program dependency
|
|
53
|
+function checkDep() {
|
|
54
|
+ # - msg debug
|
|
55
|
+ echo "check depends..."
|
|
56
|
+ if [ ! "$lang" ]; then
|
|
57
|
+ lang="C.UTF-8"
|
|
58
|
+ fi
|
|
59
|
+ for ((itools = 0; itools != ${#get_tools[@]}; itools++)); do
|
|
60
|
+ checktool=$(whereis -b ${get_tools[$itools]} | awk '/^'${get_tools[$itools]}':/{print $2}')
|
|
61
|
+ if [[ $checktool = "" ]]; then
|
|
62
|
+ sudo apt install ${pkgdep[$itools]}
|
|
63
|
+ fi
|
|
64
|
+ checktool=$(whereis -b ${get_tools[$itools]} | awk '/^'${get_tools[$itools]}':/{print $2}')
|
|
65
|
+ if [[ $checktool != "" ]]; then
|
|
66
|
+ eval get_${get_tools[$itools]}=$(whereis -b ${get_tools[$itools]} | awk '/^'${get_tools[$itools]}':/{print $2}')
|
|
67
|
+ list_tools[${#list_tools[@]}]="$(whereis -b ${get_tools[$itools]} | awk '/^'${get_tools[$itools]}':/{print $2}')"
|
|
68
|
+ else
|
|
69
|
+ ## lang messages if yes then lang else us...
|
|
70
|
+ reports=()
|
|
71
|
+ reports[${#reports[@]}]="Sorry, there are no required packages to work, please install:${pkgdep[@]}"
|
|
72
|
+ makeErr
|
|
73
|
+ exit
|
|
74
|
+ fi
|
|
75
|
+ done
|
|
76
|
+}
|
|
77
|
+
|
|
78
|
+
|
45
|
79
|
function createCert() {
|
46
|
80
|
#
|
47
|
81
|
for ((dmn=0; dmn != ${#domains[@]}; dmn++))
|
|
@@ -249,6 +283,7 @@ fi
|
249
|
283
|
## start defaults
|
250
|
284
|
|
251
|
285
|
* )
|
|
286
|
+checkDep;
|
252
|
287
|
echo "please input pameters: avto4certbot.sh --create | --update | --flist";
|
253
|
288
|
echo "avto4certbot.sh --create; create new certificate or --create mail; create and restart mail services "
|
254
|
289
|
echo "avto4certbot.sh --update; update certificates or --update mail; update and restart mail services;"
|