41 lines
1 KiB
Bash
Executable file
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"
|