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

ROOT="$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" && pwd)"
DEV_ID="$(printf '%s' "$ROOT" | cksum | awk '{print $1}')"
NAME="${BU_NAME:-default}"

case "$NAME" in
  ""|*[!A-Za-z0-9_-]*)
    echo "invalid BU_NAME: $NAME" >&2
    exit 2
    ;;
esac

export BH_HOME="${BH_HOME:-$ROOT/.browser-harness-dev}"
if [ -z "${BH_RUNTIME_DIR:-}" ]; then
  export BH_RUNTIME_DIR="/tmp/bh-dev-$DEV_ID/runtime"
  export BH_RUNTIME_DIR_SHARED="${BH_RUNTIME_DIR_SHARED:-1}"
fi
if [ -z "${BH_TMP_DIR:-}" ]; then
  export BH_TMP_DIR="$BH_HOME/tmp"
  export BH_TMP_DIR_SHARED="${BH_TMP_DIR_SHARED:-1}"
fi

if [ -x "$ROOT/.venv/bin/python" ]; then
  exec "$ROOT/.venv/bin/python" -m browser_harness.run "$@"
fi

if command -v uv >/dev/null 2>&1; then
  exec uv --directory "$ROOT" run python -m browser_harness.run "$@"
fi

export PYTHONPATH="$ROOT/src${PYTHONPATH:+:$PYTHONPATH}"
exec python3 -m browser_harness.run "$@"
