#!/usr/bin/env bash
# Stop jun11-prod supervisor and prevent reboot from re-entering production mode.
# Bench testing uses debug capture under fixture-timing/data/ (legacy) — not --prod.
#
# Usage:
#   cd ~/EtherGold/sync
#   FIXTURE_POS=2 bash disable_bench_prod.sh
#
# Re-enable field prod (long-run / uartd soak only):
#   bash ../4-Board\ Test\ Fixture/fixture-timing/jun11-prod/enable_prod.sh
#   sudo systemctl enable --now fixture-prod

if grep -q $'\r' "${BASH_SOURCE[0]}" 2>/dev/null; then
  sed -i 's/\r$//' "${BASH_SOURCE[0]}"
  exec bash "${BASH_SOURCE[0]}" "$@"
fi

set -euo pipefail

SYNC="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
# shellcheck source=ethergold_paths.sh
source "${SYNC}/ethergold_paths.sh"
# shellcheck source=source_fixture_env.sh
source "${SYNC}/source_fixture_env.sh"

DISABLE_SCRIPT=""
for candidate in \
  "${ETHERGOLD_DEV}/disable_prod.sh" \
  "${ETHERGOLD_BRIDGE}/disable_prod.sh" \
  "${ETHERGOLD_LEGACY_TIMING:-}/jun11-prod/disable_prod.sh" \
  "${ETHERGOLD_BRIDGE}/jun11-prod/disable_prod.sh"; do
  if [[ -f "${candidate}" ]]; then
    DISABLE_SCRIPT="${candidate}"
    break
  fi
done

if [[ -n "${DISABLE_SCRIPT}" ]]; then
  echo "=== disable jun11-prod (bench) pos=${FIXTURE_POS:-?} ==="
  FIXTURE_POS="${FIXTURE_POS:-}" FIXTURE_BENCH=1 bash "${DISABLE_SCRIPT}" || true
else
  echo "WARN: jun11-prod/disable_prod.sh not found — stopping systemd only" >&2
fi

UNIT="fixture-prod.service"
if systemctl list-unit-files "${UNIT}" >/dev/null 2>&1; then
  sudo systemctl stop "${UNIT}" 2>/dev/null || true
  sudo systemctl disable "${UNIT}" 2>/dev/null || true
  echo "fixture-prod.service stopped + disabled at boot"
fi
