fix(scripts): ensure postgres env aliases during restore
Some checks failed
Deployment CI/CD / validate (push) Has been cancelled
Deployment CI/CD / deploy (push) Has been cancelled

This commit is contained in:
2026-07-14 23:27:11 +03:30
parent a617fdf1ec
commit a2049ea10a
3 changed files with 124 additions and 0 deletions

View File

@@ -62,6 +62,59 @@ restore_env_if_present() {
fi
}
env_value() {
local key="$1"
local file="$2"
awk -v key="$key" '
$0 ~ "^[[:space:]]*" key "=" {
sub(/^[^=]*=/, "")
print
exit
}
' "$file"
}
set_env_value() {
local key="$1"
local value="$2"
local file="$3"
local tmp_path
tmp_path="$(mktemp)"
awk -v key="$key" -v value="$value" '
$0 ~ "^[[:space:]]*" key "=" {
print key "=" value
found = 1
next
}
{ print }
END {
if (!found) {
print key "=" value
}
}
' "$file" > "$tmp_path"
mv "$tmp_path" "$file"
chmod 600 "$file" || true
}
sync_postgres_env_aliases() {
local db_name db_user db_password
db_name="$(env_value DB_NAME "$BACKEND_ENV")"
db_user="$(env_value DB_USER "$BACKEND_ENV")"
db_password="$(env_value DB_PASSWORD "$BACKEND_ENV")"
[[ -n "$db_name" ]] || fail "DB_NAME is missing or empty in $BACKEND_ENV"
[[ -n "$db_user" ]] || fail "DB_USER is missing or empty in $BACKEND_ENV"
[[ -n "$db_password" ]] || fail "DB_PASSWORD is missing or empty in $BACKEND_ENV"
set_env_value POSTGRES_DB "$db_name" "$BACKEND_ENV"
set_env_value POSTGRES_USER "$db_user" "$BACKEND_ENV"
set_env_value POSTGRES_PASSWORD "$db_password" "$BACKEND_ENV"
}
if [[ "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
usage
exit 0
@@ -99,6 +152,9 @@ fi
require_file "$BACKEND_ENV"
require_file "$DEPLOY_ENV"
log "Ensuring PostgreSQL environment aliases exist"
sync_postgres_env_aliases
log "Checking Docker Compose configuration"
compose config -q