#!/bin/sh
set -eu

RELEASE_URL=${BUGHUNTER_RELEASE_URL:-https://mentor.punkration.com/download/bughunter-pilot.tar.gz}
CHECKSUM_URL=${BUGHUNTER_CHECKSUM_URL:-https://mentor.punkration.com/download/bughunter-pilot.tar.gz.sha256}
INSTALL_ROOT=${BUGHUNTER_INSTALL_ROOT:-"$HOME/Library/Application Support/BugHunter Pilot"}
APP_DIR="$INSTALL_ROOT/app"
DATA_DIR="$INSTALL_ROOT/data"
ARCHIVE=$(mktemp -t bughunter-pilot.XXXXXX)
cleanup() { rm -f "$ARCHIVE"; }
trap cleanup EXIT INT TERM

command -v python3 >/dev/null 2>&1 || { echo "Install Python 3.11+ from python.org first." >&2; exit 1; }
python3 -c 'import sys; raise SystemExit(0 if sys.version_info >= (3, 11) else 1)' || {
  echo "BugHunter Pilot requires Python 3.11+." >&2
  exit 1
}
mkdir -p "$APP_DIR" "$DATA_DIR"
curl --fail --location --proto '=https' --tlsv1.2 "$RELEASE_URL" -o "$ARCHIVE"
EXPECTED_SHA256=$(curl --fail --silent --show-error --location --proto '=https' --tlsv1.2 "$CHECKSUM_URL" | awk '{print $1}')
python3 -c 'import hashlib, pathlib, sys; actual=hashlib.sha256(pathlib.Path(sys.argv[1]).read_bytes()).hexdigest(); raise SystemExit(0 if actual == sys.argv[2] else "Release checksum mismatch; installation stopped")' "$ARCHIVE" "$EXPECTED_SHA256"
tar -xzf "$ARCHIVE" -C "$APP_DIR" --strip-components=1
export BUGHUNTER_INSTALL_DIR="$DATA_DIR"
export BUGHUNTER_DB="$DATA_DIR/research.sqlite3"
export BUGHUNTER_STUDENT_DIR="$DATA_DIR/student"
export BUGHUNTER_NO_LAUNCH=${BUGHUNTER_NO_LAUNCH:-1}
exec python3 "$APP_DIR/install.py"
