#!/usr/bin/with-contenv bash # shellcheck shell=bash echo "MOD Auto-reload: Watching the following files/folders for changes (excluding .sample and .md files):" echo "/config/nginx" ACTIVE_WATCH=("/config/nginx") for i in $(echo "${WATCHLIST}" | tr "|" " "); do if [ -f "${i}" ] || [ -d "${i}" ]; then echo "${i}" ACTIVE_WATCH+=("${i}") fi done function wait_for_changes { inotifywait -rq \ --event modify,move,create,delete \ --excludei '\.(sample|md)' \ "${ACTIVE_WATCH[@]}" } while wait_for_changes; do 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 "${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 done