#!/usr/bin/env bash set -euo pipefail if [[ -z "${DATABASE_URL:-}" && -z "${BACKUP_DATABASE_URL:-}" ]]; then echo "DATABASE_URL or BACKUP_DATABASE_URL is required." exit 1 fi ENV_FILE="${ENV_FILE:-./.env}" if [[ -f "$ENV_FILE" ]]; then set -a # shellcheck source=/dev/null . "$ENV_FILE" set +a fi OUT_DIR="${BACKUP_DIR:-./backups}" mkdir -p "$OUT_DIR" STAMP="$(date +%F_%H%M%S)" OUT_FILE="${OUT_DIR}/skymoney_${STAMP}.dump" OUT_BASENAME="$(basename "$OUT_FILE")" OUT_DIR_ABS="$(cd "$OUT_DIR" && pwd)" pg_dump "${BACKUP_DATABASE_URL:-$DATABASE_URL}" -Fc -f "$OUT_FILE" (cd "$OUT_DIR_ABS" && sha256sum "$OUT_BASENAME" > "${OUT_BASENAME}.sha256") echo "Backup written to: $OUT_FILE" echo "Checksum written to: ${OUT_FILE}.sha256"