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

PROJECT="sitemap.xml"
OWNER="${DOTNAOS_GITHUB_OWNER:-DotNaos}"
ROOT="${DOTNAOS_INSTALL_ROOT:-$HOME/.local/share/dotnaos/installed}"
TARGET="$ROOT/$PROJECT"

if [[ "${1:-}" == "--clean" ]]; then
  rm -rf "$TARGET"
  shift
fi

command -v git >/dev/null 2>&1 || { echo "git is required" >&2; exit 1; }
mkdir -p "$ROOT"

if [[ ! -d "$TARGET/.git" ]]; then
  rm -rf "$TARGET"
  if command -v gh >/dev/null 2>&1 && gh auth status --hostname github.com >/dev/null 2>&1; then
    gh repo clone "$OWNER/$PROJECT" "$TARGET" || true
  fi
  if [[ ! -d "$TARGET/.git" ]]; then
    git clone "https://github.com/$OWNER/$PROJECT.git" "$TARGET" || true
  fi
  if [[ ! -d "$TARGET/.git" ]]; then
    git clone "git@github.com:$OWNER/$PROJECT.git" "$TARGET"
  fi
else
  git -C "$TARGET" fetch origin main
  git -C "$TARGET" checkout -f main
  git -C "$TARGET" reset --hard origin/main
fi

[[ -f "$TARGET/install.sh" ]] || { echo "$OWNER/$PROJECT does not provide install.sh" >&2; exit 1; }
exec bash "$TARGET/install.sh" "$@"
