#!/usr/bin/env bash
set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
DEFAULT_BUILD="$SCRIPT_DIR/out/linux"
BUILD_PATH="${BUILD_PATH:-$DEFAULT_BUILD}"
INSTALL_PATH="${INSTALL_PATH:-/var/Galeria-ALPR-Control-Center}"

if [[ ! -d "$BUILD_PATH" ]]; then
  echo "Build not found in $BUILD_PATH. Run build-linux.sh first." >&2
  exit 1
fi

echo "==> Publishing contents to \"$INSTALL_PATH\""
mkdir -p "$INSTALL_PATH"

if command -v rsync >/dev/null 2>&1; then
  rsync -a --delete "$BUILD_PATH"/ "$INSTALL_PATH"/
else
  echo "   rsync not available, falling back to cp -R"
  find "$INSTALL_PATH" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
  cp -R "$BUILD_PATH"/. "$INSTALL_PATH"/
fi

RESET_VERSIONS_SRC="$REPO_ROOT/server/scripts/reset_versions.mjs"
RESET_UPDATES_SRC="$REPO_ROOT/scripts/reset_updates.sh"
RESET_VERSIONS_DEST="$INSTALL_PATH/server/scripts/reset_versions.mjs"
RESET_UPDATES_DEST="$INSTALL_PATH/reset_updates.sh"

echo "==> Copying maintenance scripts"
if [[ -f "$RESET_VERSIONS_SRC" ]]; then
  mkdir -p "$(dirname "$RESET_VERSIONS_DEST")"
  cp "$RESET_VERSIONS_SRC" "$RESET_VERSIONS_DEST"
else
  echo "   Warning: $RESET_VERSIONS_SRC not found" >&2
fi

if [[ -f "$RESET_UPDATES_SRC" ]]; then
  cp "$RESET_UPDATES_SRC" "$RESET_UPDATES_DEST"
  chmod +x "$RESET_UPDATES_DEST"
else
  echo "   Warning: $RESET_UPDATES_SRC not found" >&2
fi

echo "�o. Deploy finished in \"$INSTALL_PATH\""
