#!/bin/bash
# Editor Hub — starts server if not running, opens Chrome.

SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
URL="http://127.0.0.1:8420"

# Check if server is already running
if curl -s "$URL/api/projects" > /dev/null 2>&1; then
  echo "Server already running on $URL"
else
  echo "Starting Editor Hub server..."
  python3 "$SCRIPT_DIR/serve.py" &
  SERVER_PID=$!
  trap 'kill $SERVER_PID 2>/dev/null' EXIT INT TERM

  # Wait up to 5 seconds for server to be ready
  for i in $(seq 1 25); do
    if curl -s "$URL/api/projects" > /dev/null 2>&1; then
      echo "Server ready (PID $SERVER_PID)"
      break
    fi
    sleep 0.2
  done

  if ! curl -s "$URL/api/projects" > /dev/null 2>&1; then
    echo "ERROR: Server failed to start."
    exit 1
  fi
fi

# Open in Chrome (fall back to default browser)
if [ -d "/Applications/Google Chrome.app" ]; then
  open -a "Google Chrome" "$URL"
else
  open "$URL"
fi
