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

ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT"

export FLEET_BOOTSTRAP_BASE_URL_PRIMARY="${FLEET_BOOTSTRAP_BASE_URL_PRIMARY:-https://vpsvpn.qxyx.net/bootstrap}"
export FLEET_BOOTSTRAP_BASE_URL_FALLBACK="${FLEET_BOOTSTRAP_BASE_URL_FALLBACK:-https://vpsvpn.qxyx.net/bootstrap}"
export FLEET_SELF_REGISTER_URL="${FLEET_SELF_REGISTER_URL:-https://vpsvpn.qxyx.net/api/enroll}"

echo "[1/5] Checking Cloudflare login..."
npx wrangler whoami >/dev/null

echo "[2/5] Refreshing managed VPS report..."
python3 "$ROOT/scripts/fleet_manager.py" \
  --inventory "$ROOT/fleet.production.json" \
  publish \
  --json-out "$ROOT/reports/fleet.json" \
  --markdown-out "$ROOT/reports/fleet.md" \
  --html-out "$ROOT/reports/fleet.html"

echo "[3/5] Building full VPSVPN dashboard..."
python3 "$ROOT/scripts/build_vpsvpn_dashboard.py"

echo "[4/6] Syncing bootstrap source to Cloudflare KV..."
bash "$ROOT/scripts/sync_vpsvpn_bootstrap_kv.sh"

echo "[5/6] Deploying Cloudflare Pages..."
python3 "$ROOT/scripts/deploy_vpsvpn_pages.py"

echo "[6/6] Verifying public dashboard..."
curl --fail --max-time 20 -sS -o /dev/null https://vpsvpn.qxyx.net/
curl --fail --max-time 20 -sS -o /dev/null https://vpsvpn.qxyx.net/bootstrap/install.sh
curl --fail --max-time 20 -sS -o /dev/null https://vpsvpn.qxyx.net/bootstrap/vpn-oneclick.tar.gz

echo "Done: https://vpsvpn.qxyx.net/"
echo "Admin: https://vpsvpn.qxyx.net/admin/"
