diff --git a/certman.sh b/certman.sh index bdf9589..10287a1 100755 --- a/certman.sh +++ b/certman.sh @@ -3,12 +3,26 @@ # Exit on any error, treat unset variables as errors, and propagate errors in pipelines set -euo pipefail -if [ -f .env ]; then - source .env -else - echo "No .env file found." +load_env() { + local paths=( + "$(pwd)/.env" + "$(dirname "$(realpath "$0")")/.env" + "$(dirname "$(realpath "$0")")/.env.$(basename "$(realpath "$0")")" + "$(dirname "$(readlink "$0")")/.env.$(basename "$0")" + "/opt/skyfritt-tools-env/.env.$(basename "$0")" + ) + + for path in "${paths[@]}"; do + if [[ -f "$path" ]]; then + source "$path" && return 0 + fi + done + + echo "Error: .env file not found in any location" >&2 exit 1 -fi +} + +load_env || exit 1 AUTO_MODE="false" FORCE_UPDATE="false"