#!/usr/bin/env bash
# launch.sh — sets up the environment and starts the dashboard server
set -e

VENV=".venv"

echo ""
echo "  ██████╗  ██████╗  █████╗ ██████╗ ██╗███╗   ██╗ ██████╗"
echo "  ██╔══██╗██╔═══██╗██╔══██╗██╔══██╗██║████╗  ██║██╔════╝"
echo "  ██████╔╝██║   ██║███████║██████╔╝██║██╔██╗ ██║██║  ███╗"
echo "  ██╔══██╗██║   ██║██╔══██║██╔══██╗██║██║╚██╗██║██║   ██║"
echo "  ██║  ██║╚██████╔╝██║  ██║██║  ██║██║██║ ╚████║╚██████╔╝"
echo "  ╚═╝  ╚═╝ ╚═════╝ ╚═╝  ╚═╝╚═╝  ╚═╝╚═╝╚═╝  ╚═══╝ ╚═════╝"
echo "  ██╗  ██╗██╗████████╗████████╗██╗   ██╗"
echo "  ██║ ██╔╝██║╚══██╔══╝╚══██╔══╝╚██╗ ██╔╝"
echo "  █████╔╝ ██║   ██║      ██║    ╚████╔╝"
echo "  ██╔═██╗ ██║   ██║      ██║     ╚██╔╝"
echo "  ██║  ██╗██║   ██║      ██║      ██║"
echo "  ╚═╝  ╚═╝╚═╝   ╚═╝      ╚═╝      ╚═╝  Tracker"
echo ""

# ── 1. Create virtualenv if it doesn't exist ───────────────────────────
if [ ! -d "$VENV" ]; then
  echo "  → Creating virtual environment..."
  python3 -m venv "$VENV"
fi

# ── 2. Activate ────────────────────────────────────────────────────────
source "$VENV/bin/activate"

# ── 3. Install / upgrade dependencies ─────────────────────────────────
echo "  → Installing dependencies..."
pip install -q --upgrade pip
pip install -q -r requirements.txt

# ── 4. Check for score data ────────────────────────────────────────────
SCORES="data/outputs/scores_compact.csv"
if [ ! -f "$SCORES" ]; then
  echo ""
  echo "  ⚠  No score data found. Run one of the screeners first:"
  echo ""
  echo "     # Quick test (4 tickers from config.yaml):"
  echo "     python rk_tracker.py --config config.yaml"
  echo ""
  echo "     # Full US universe (~7 400 tickers, takes several hours):"
  echo "     python run_universe.py --universe_csv us_universe.csv --resume"
  echo ""
  echo "  Starting the server anyway — you can run a screener in a"
  echo "  separate terminal while the dashboard is open."
  echo ""
fi

# ── 5. Launch server ───────────────────────────────────────────────────
echo "  → Starting dashboard at http://localhost:8765/dashboard.html"
echo "  → Press Ctrl+C to stop."
echo ""
python serve.py
