From 7a234a8830f3a8c6393a93c600d0aa50fa710851 Mon Sep 17 00:00:00 2001 From: Eric Nemchik Date: Thu, 22 Sep 2022 13:34:53 +0000 Subject: [PATCH] Adjust for compatibility with standard-base --- .../s6-rc.d/svc-mod-swag-auto-reload/run | 38 +++++++++---------- root/etc/services.d/inotify/run | 37 +++++++++--------- 2 files changed, 35 insertions(+), 40 deletions(-) diff --git a/root/etc/s6-overlay/s6-rc.d/svc-mod-swag-auto-reload/run b/root/etc/s6-overlay/s6-rc.d/svc-mod-swag-auto-reload/run index af3e5cd..d4674de 100755 --- a/root/etc/s6-overlay/s6-rc.d/svc-mod-swag-auto-reload/run +++ b/root/etc/s6-overlay/s6-rc.d/svc-mod-swag-auto-reload/run @@ -1,45 +1,41 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash -DEFAULT_WATCH=( \ - /config/nginx/authelia-location.conf \ - /config/nginx/authelia-server.conf \ - /config/nginx/geoip2.conf \ - /config/nginx/ldap.conf \ - /config/nginx/nginx.conf \ - /config/nginx/proxy-confs \ - /config/nginx/proxy.conf \ - /config/nginx/site-confs \ - /config/nginx/ssl.conf \ -) +DEFAULT_WATCH=() +mapfile -t DEFAULT_WATCH < <(find /config/nginx -type f -name '*.conf' -print) +DEFAULT_WATCH+=("/config/nginx/proxy-confs" "/config/nginx/site-confs") +# start with an empty array for active watch +ACTIVE_WATCH=() echo "MOD Auto-reload: Watching the following files/folders for changes" -for i in ${DEFAULT_WATCH[@]}; do +for i in "${DEFAULT_WATCH[@]}"; do if [ -f "${i}" ] || [ -d "${i}" ]; then echo "${i}" - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" + ACTIVE_WATCH+=("${i}") fi done -for i in $(echo "$WATCHLIST" | tr "|" " "); do +for i in $(echo "${WATCHLIST}" | tr "|" " "); do if [ -f "${i}" ] || [ -d "${i}" ]; then echo "${i}" - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" + ACTIVE_WATCH+=("${i}") fi done function wait_for_changes { inotifywait -rq \ --event modify,move,create,delete \ - ${ACTIVE_WATCH} + "${ACTIVE_WATCH[@]}" } while wait_for_changes; do - if ! cat /etc/nginx/nginx.conf | grep "/config/nginx/nginx.conf"; then - export NGINX_CONF="-c /config/nginx/nginx.conf" + NGINX_CONF=() + if ! grep -q "/config/nginx/nginx.conf" /etc/nginx/nginx.conf; then + NGINX_CONF=("-c" "/config/nginx/nginx.conf") fi - if /usr/sbin/nginx ${NGINX_CONF} -t; then + if /usr/sbin/nginx "${NGINX_CONF[@]}" -t; then echo "Changes to nginx config detected and the changes are valid, reloading nginx" - /usr/sbin/nginx ${NGINX_CONF} -s reload + /usr/sbin/nginx "${NGINX_CONF[@]}" -s reload else echo "Changes to nginx config detected but the changes are not valid, skipping nginx reload. Please fix your config." - fi + fi done diff --git a/root/etc/services.d/inotify/run b/root/etc/services.d/inotify/run index 0996168..d4674de 100755 --- a/root/etc/services.d/inotify/run +++ b/root/etc/services.d/inotify/run @@ -1,42 +1,41 @@ #!/usr/bin/with-contenv bash +# shellcheck shell=bash -DEFAULT_WATCH=( \ - /config/nginx/authelia-location.conf \ - /config/nginx/authelia-server.conf \ - /config/nginx/geoip2.conf \ - /config/nginx/ldap.conf \ - /config/nginx/nginx.conf \ - /config/nginx/proxy-confs \ - /config/nginx/proxy.conf \ - /config/nginx/site-confs \ - /config/nginx/ssl.conf \ -) +DEFAULT_WATCH=() +mapfile -t DEFAULT_WATCH < <(find /config/nginx -type f -name '*.conf' -print) +DEFAULT_WATCH+=("/config/nginx/proxy-confs" "/config/nginx/site-confs") +# start with an empty array for active watch +ACTIVE_WATCH=() echo "MOD Auto-reload: Watching the following files/folders for changes" -for i in ${DEFAULT_WATCH[@]}; do +for i in "${DEFAULT_WATCH[@]}"; do if [ -f "${i}" ] || [ -d "${i}" ]; then echo "${i}" - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" + ACTIVE_WATCH+=("${i}") fi done -for i in $(echo "$WATCHLIST" | tr "|" " "); do +for i in $(echo "${WATCHLIST}" | tr "|" " "); do if [ -f "${i}" ] || [ -d "${i}" ]; then echo "${i}" - ACTIVE_WATCH="${ACTIVE_WATCH} ${i}" + ACTIVE_WATCH+=("${i}") fi done function wait_for_changes { inotifywait -rq \ --event modify,move,create,delete \ - ${ACTIVE_WATCH} + "${ACTIVE_WATCH[@]}" } while wait_for_changes; do - if /usr/sbin/nginx -c /config/nginx/nginx.conf -t; then + NGINX_CONF=() + if ! grep -q "/config/nginx/nginx.conf" /etc/nginx/nginx.conf; then + NGINX_CONF=("-c" "/config/nginx/nginx.conf") + fi + if /usr/sbin/nginx "${NGINX_CONF[@]}" -t; then echo "Changes to nginx config detected and the changes are valid, reloading nginx" - /usr/sbin/nginx -c /config/nginx/nginx.conf -s reload + /usr/sbin/nginx "${NGINX_CONF[@]}" -s reload else echo "Changes to nginx config detected but the changes are not valid, skipping nginx reload. Please fix your config." - fi + fi done