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

BASE_URL="${ZEROTRADE_PORTAL_BASE_URL:-https://zerotrade.monster}"
ARCHIVE_URL="${ZEROTRADE_BOOTSTRAP_URL:-$BASE_URL/api/downloads/bootstrap}"
INSTALL_PROFILE="${INSTALL_PROFILE:-node}"
INSTALL_LOCAL_AI="${INSTALL_LOCAL_AI:-false}"
OLLAMA_MODEL="${OLLAMA_MODEL:-gemma4:e2b}"
WORK_DIR="$(mktemp -d)"
ARCHIVE_PATH="$WORK_DIR/zerotrade-bootstrap.tgz"
SOURCE_DIR="$WORK_DIR/source"

cleanup() {
  rm -rf "$WORK_DIR"
}

trap cleanup EXIT

require_binary() {
  if ! command -v "$1" >/dev/null 2>&1; then
    echo "Missing required command: $1" >&2
    exit 1
  fi
}

require_binary curl
require_binary tar

mkdir -p "$SOURCE_DIR"

echo "ZeroTrade bootstrap"
echo "Portal: $BASE_URL"
echo "Install profile: $INSTALL_PROFILE"
echo "Local AI install: $INSTALL_LOCAL_AI"
echo "Ollama model: $OLLAMA_MODEL"
echo "Downloading current bundle..."
curl -fsSL "$ARCHIVE_URL" -o "$ARCHIVE_PATH"
tar -xzf "$ARCHIVE_PATH" -C "$SOURCE_DIR"
cd "$SOURCE_DIR"

if [[ ! -f "scripts/install.sh" ]]; then
  echo "Bootstrap archive is missing scripts/install.sh" >&2
  exit 1
fi

if [[ "${EUID}" -ne 0 ]]; then
  if command -v sudo >/dev/null 2>&1; then
    echo "Escalating with sudo to run the production installer..."
    exec sudo -E env INSTALL_PROFILE="$INSTALL_PROFILE" INSTALL_LOCAL_AI="$INSTALL_LOCAL_AI" OLLAMA_MODEL="$OLLAMA_MODEL" bash scripts/install.sh
  fi

  echo "Run as root or install sudo, then retry." >&2
  exit 1
fi

env INSTALL_PROFILE="$INSTALL_PROFILE" INSTALL_LOCAL_AI="$INSTALL_LOCAL_AI" OLLAMA_MODEL="$OLLAMA_MODEL" bash scripts/install.sh
