31 lines
835 B
Bash
31 lines
835 B
Bash
#!/usr/bin/env bash
|
|
# Shell helper to export secrets from a single dotenv file.
|
|
# Usage: source scripts/load-secrets.sh
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
SECRETS_FILE="${SECRETS_FILE:-$ROOT_DIR/creds/secrets.env}"
|
|
ENCRYPTED_FILE="${ENCRYPTED_FILE:-$ROOT_DIR/creds/secrets.enc.env}"
|
|
|
|
ensure_decrypted() {
|
|
if [[ -f "$SECRETS_FILE" ]]; then
|
|
return 0
|
|
fi
|
|
if [[ -f "$ENCRYPTED_FILE" ]]; then
|
|
if command -v sops >/dev/null 2>&1; then
|
|
echo "Decrypting $ENCRYPTED_FILE -> $SECRETS_FILE"
|
|
sops -d "$ENCRYPTED_FILE" >"$SECRETS_FILE"
|
|
else
|
|
echo "sops not found and $SECRETS_FILE is missing. Install sops or set SECRETS_FILE." >&2
|
|
return 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
ensure_decrypted || exit 0
|
|
|
|
echo "Loading secrets from $SECRETS_FILE"
|
|
set -a
|
|
source "$SECRETS_FILE"
|
|
set +a
|