|
1 | 1 | #!/usr/bin/with-contenv bash |
| 2 | +# shellcheck shell=bash |
2 | 3 |
|
3 | | -DEFAULT_WATCH=( \ |
4 | | - /config/nginx/authelia-location.conf \ |
5 | | - /config/nginx/authelia-server.conf \ |
6 | | - /config/nginx/geoip2.conf \ |
7 | | - /config/nginx/ldap.conf \ |
8 | | - /config/nginx/nginx.conf \ |
9 | | - /config/nginx/proxy-confs \ |
10 | | - /config/nginx/proxy.conf \ |
11 | | - /config/nginx/site-confs \ |
12 | | - /config/nginx/ssl.conf \ |
13 | | -) |
14 | | - |
15 | | -echo "MOD Auto-reload: Watching the following files/folders for changes" |
16 | | -for i in ${DEFAULT_WATCH[@]}; do |
17 | | - if [ -f "${i}" ] || [ -d "${i}" ]; then |
18 | | - echo "${i}" |
19 | | - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" |
20 | | - fi |
21 | | -done |
22 | | -for i in $(echo "$WATCHLIST" | tr "|" " "); do |
| 4 | +echo "MOD Auto-reload: Watching the following files/folders for changes (excluding .sample and .md files):" |
| 5 | +echo "/config/nginx" |
| 6 | +ACTIVE_WATCH=("/config/nginx") |
| 7 | +for i in $(echo "${WATCHLIST}" | tr "|" " "); do |
23 | 8 | if [ -f "${i}" ] || [ -d "${i}" ]; then |
24 | 9 | echo "${i}" |
25 | | - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" |
| 10 | + ACTIVE_WATCH+=("${i}") |
26 | 11 | fi |
27 | 12 | done |
28 | 13 |
|
29 | 14 | function wait_for_changes { |
30 | 15 | inotifywait -rq \ |
31 | 16 | --event modify,move,create,delete \ |
32 | | - ${ACTIVE_WATCH} |
| 17 | + --excludei '\.(sample|md)' \ |
| 18 | + "${ACTIVE_WATCH[@]}" |
33 | 19 | } |
34 | 20 |
|
35 | 21 | while wait_for_changes; do |
36 | | - if ! cat /etc/nginx/nginx.conf | grep "/config/nginx/nginx.conf"; then |
37 | | - export NGINX_CONF="-c /config/nginx/nginx.conf" |
| 22 | + NGINX_CONF=() |
| 23 | + if ! grep -q "/config/nginx/nginx.conf" /etc/nginx/nginx.conf; then |
| 24 | + NGINX_CONF=("-c" "/config/nginx/nginx.conf") |
38 | 25 | fi |
39 | | - if /usr/sbin/nginx ${NGINX_CONF} -t; then |
| 26 | + if /usr/sbin/nginx "${NGINX_CONF[@]}" -t; then |
40 | 27 | echo "Changes to nginx config detected and the changes are valid, reloading nginx" |
41 | | - /usr/sbin/nginx ${NGINX_CONF} -s reload |
| 28 | + /usr/sbin/nginx "${NGINX_CONF[@]}" -s reload |
42 | 29 | else |
43 | 30 | echo "Changes to nginx config detected but the changes are not valid, skipping nginx reload. Please fix your config." |
44 | | - fi |
| 31 | + fi |
45 | 32 | done |
0 commit comments