#!/usr/bin/env sh
set -eu

ROOT_DIR="$(cd "$(dirname "$0")/../../.." && pwd)"
IN_DIR="${1:-$ROOT_DIR/deploy/raspberry/out}"
POSDB_VOLUME_NAME="${POSDB_VOLUME_NAME:-raspberry_posdb}"
POSDB_CLEAN="${POSDB_CLEAN:-1}" # 1 - wipe volume before restore

ARCHIVE="$IN_DIR/posdb-volume.tar.gz"

if [ ! -f "$ARCHIVE" ]; then
  echo "[restore] Archive not found: $ARCHIVE"
  exit 1
fi

echo "[restore] Volume: $POSDB_VOLUME_NAME"
echo "[restore] Archive: $ARCHIVE"

docker volume inspect "$POSDB_VOLUME_NAME" >/dev/null 2>&1 || {
  echo "[restore] Volume '$POSDB_VOLUME_NAME' not found. Creating it..."
  docker volume create "$POSDB_VOLUME_NAME" >/dev/null
}

docker run --rm \
  -v "$POSDB_VOLUME_NAME:/data" \
  -v "$IN_DIR:/backup" \
  alpine:3.20 \
  sh -lc "\
    if [ \"$POSDB_CLEAN\" = \"1\" ]; then rm -rf /data/*; fi; \
    tar xzf /backup/posdb-volume.tar.gz -C /data \
  "

echo "[restore] Done."

