#!/usr/bin/env bash
# Start local bridge (:8765) and open Executive Desk in a Chrome app window.
set -euo pipefail
DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$DIR"
URL="http://127.0.0.1:8765/EXEC_DESK_MOCK.html"
IP=$(hostname -I 2>/dev/null | awk '{print $1}')
LAN="http://${IP:-127.0.0.1}:8765/EXEC_DESK_MOCK.html"

if ss -ltn 2>/dev/null | grep -q ':8765 '; then
  echo "Already serving on :8765"
else
  python3 "$DIR/serve_last_click.py" >/tmp/last_click_serve.log 2>&1 &
  for _ in 1 2 3 4 5 6 7 8 9 10; do
    if ss -ltn 2>/dev/null | grep -q ':8765 '; then
      break
    fi
    sleep 0.2
  done
fi

if ! ss -ltn 2>/dev/null | grep -q ':8765 '; then
  echo "Bridge failed to start — see /tmp/last_click_serve.log" >&2
  exit 1
fi

if command -v google-chrome >/dev/null 2>&1; then
  google-chrome --profile-directory=Default --app="$URL" >/dev/null 2>&1 &
elif command -v firefox >/dev/null 2>&1; then
  firefox --new-window "$URL" >/dev/null 2>&1 &
else
  xdg-open "$URL" >/dev/null 2>&1 &
fi

echo "Local:  $URL"
echo "Phone (same Wi‑Fi): $LAN"
