#!/bin/sh
# Restauration d'une sauvegarde.
#
#   ./scripts/restore.sh backups/ama-20260922-030000.sql.age
#
# À tester régulièrement sur un environnement de test : c'est le seul moyen de
# savoir qu'une sauvegarde fonctionne.
set -eu

FILE="${1:?Indiquez le fichier de sauvegarde}"
DB_USER="${POSTGRES_USER:-ama}"
DB_NAME="${POSTGRES_DB:-ama}"

TMP="$(mktemp)"
trap 'rm -f "$TMP"' EXIT

case "$FILE" in
  *.age)
    : "${BACKUP_AGE_KEY:?Chemin de la clé privée age requis}"
    age -d -i "$BACKUP_AGE_KEY" -o "$TMP" "$FILE"
    ;;
  *) cp "$FILE" "$TMP" ;;
esac

printf 'Restaurer dans la base %s ? Les données actuelles seront écrasées. [oui/non] ' "$DB_NAME"
read -r answer
[ "$answer" = "oui" ] || { echo "Annulé."; exit 1; }

docker compose exec -T db psql -U "$DB_USER" -d "$DB_NAME" < "$TMP"
echo "[restore] terminé. Vérifiez l'application avant de remettre en service."
