Browse Source

fix add packages & path script 18.01.23

master 1 year ago
parent
commit
2983805e42
1 changed files with 37 additions and 2 deletions
  1. 37 2
      avto4certbot/avto4certbot.sh

+ 37 - 2
avto4certbot/avto4certbot.sh

@@ -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;"