sub-aligator/scripts/restore.sh

41 lines
1 KiB
Bash
Executable file

#!/usr/bin/env bash
set -euo pipefail
# Bezpečnostní upozornění: obnova přepíše aktuální databázi.
# Zastavte kontejner před obnovou a nezapomeňte si předem zálohovat aktuální stav.
DATA_DIR="${DATA_DIR:-./data}"
BACKUP_DIR="${BACKUP_DIR:-./backups}"
DB_NAME="${DB_NAME:-subnet-allocator.db}"
DB_PATH="${DATA_DIR}/${DB_NAME}"
if [ $# -lt 1 ]; then
echo "Použití: $0 <cesta-k-backup-souboru>" >&2
echo "Dostupné backupy v ${BACKUP_DIR}:" >&2
ls -1 "$BACKUP_DIR"/*.backup 2>/dev/null || echo " žádné" >&2
exit 1
fi
BACKUP_FILE="$1"
if [ ! -f "$BACKUP_FILE" ]; then
echo "ERROR: Backup soubor neexistuje: $BACKUP_FILE" >&2
exit 1
fi
if [ -f "$DB_PATH" ]; then
echo "UPOZORNĚNÍ: Aktuální databáze ${DB_PATH} bude přepsána." >&2
read -r -p "Pokračovat? [y/N] " CONFIRM
if [[ ! "$CONFIRM" =~ ^[Yy]$ ]]; then
echo "Obnova zrušena." >&2
exit 0
fi
fi
mkdir -p "$DATA_DIR"
echo "Obnovuji databázi z: $BACKUP_FILE"
cp "$BACKUP_FILE" "$DB_PATH"
echo "Obnova dokončena: $DB_PATH"