#!/bin/bash
set -euo pipefail

ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
PYTHON_BIN="${PYTHON_BIN:-python3.12}"
VENV_DIR="${VENV_DIR:-.venv}"
REQS="${REQS:-tools/requirements-lock.txt}"
EXTRA_REQS="${EXTRA_REQS:-}"
UV_CACHE_DIR="${UV_CACHE_DIR:-$ROOT_DIR/.uv-cache}"
export UV_CACHE_DIR

if ! command -v uv >/dev/null 2>&1; then
  echo "ERROR: uv not found on PATH. Install uv (e.g., brew install uv) and retry." >&2
  exit 1
fi

uv venv "$VENV_DIR" --python "$PYTHON_BIN"
source "$VENV_DIR/bin/activate"
uv pip install -r "$REQS"
if [ -n "$EXTRA_REQS" ] && [ -f "$EXTRA_REQS" ]; then
  uv pip install -r "$EXTRA_REQS"
fi

echo "uv venv ready at $VENV_DIR using $PYTHON_BIN with deps from $REQS${EXTRA_REQS:+ + $EXTRA_REQS}"
