#!/usr/bin/env bash
#ddev-generated
## Description: Turn the headless browser (Playwright MCP) for Claude Code on or off
## Usage: claude-browser [enable|disable|status]
## Example: "ddev claude-browser enable"
set -euo pipefail

TEMPLATE="${DDEV_APPROOT}/.ddev/claude-code/browser/docker-compose.claude-browser.yaml"
TARGET="${DDEV_APPROOT}/.ddev/docker-compose.claude-browser.yaml"
CONTAINER="ddev-${DDEV_SITENAME}-claude-browser"

case "${1:-status}" in
  enable|on)
    if [ ! -f "${TEMPLATE}" ]; then
      echo "Missing ${TEMPLATE}; reinstall the add-on with 'ddev add-on get'." >&2
      exit 1
    fi
    if [ -f "${TARGET}" ]; then
      echo "The headless browser is already enabled (.ddev/docker-compose.claude-browser.yaml)."
      exit 0
    fi
    cp "${TEMPLATE}" "${TARGET}"
    echo "Enabled the headless browser; restarting so the claude-browser service starts ..."
    ddev restart
    ;;
  disable|off)
    if [ ! -f "${TARGET}" ]; then
      echo "The headless browser is not enabled."
      exit 0
    fi
    if ! grep -q '#ddev-generated' "${TARGET}"; then
      echo "${TARGET} has been customised (no #ddev-generated line); delete it yourself and run 'ddev restart'." >&2
      exit 1
    fi
    rm -f "${TARGET}"
    echo "Disabled the headless browser; restarting so the claude-browser service stops ..."
    ddev restart
    ;;
  status)
    if [ -f "${TARGET}" ]; then
      state="enabled"
    else
      state="disabled"
    fi
    running="unknown"
    if command -v docker >/dev/null 2>&1; then
      running="$(docker inspect -f '{{.State.Status}}' "${CONTAINER}" 2>/dev/null || echo "not running")"
    fi
    echo "Headless browser: ${state} (container ${CONTAINER}: ${running})"
    ;;
  *)
    echo "Usage: ddev claude-browser [enable|disable|status]" >&2
    exit 2
    ;;
esac
