#!/usr/bin/env bash
# Remove obsolete bench / bridge / WireGuard files from a collector Pi (Brett SD clone prep).
# Safe to run on pos1 field collector — keeps listen stack + DyzineFrame.
#
#   bash ~/EtherGold/sync/prune_collector_pi.sh

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

EG="${ETHERGOLD_ROOT:-${HOME}/EtherGold}"
DF="${DYZINEFRAME_ROOT:-${HOME}/DyzineFrame}"

remove_if_exists() {
  for path in "$@"; do
    if [[ -e "${path}" ]]; then
      echo "remove ${path}"
      rm -rf "${path}" 2>/dev/null || sudo rm -rf "${path}" 2>/dev/null || echo "WARN: could not remove ${path}" >&2
    fi
  done
}

echo "=== prune_collector_pi EtherGold ==="

# Bench / dev trees (never on field Pi)
remove_if_exists \
  "${EG}/4-Board Test Fixture" \
  "${EG}/bridge/pog-edge" \
  "${EG}/bridge/data" \
  "${EG}/bridge/logs" \
  "${EG}/bridge/jun12-replay" \
  "${EG}/bridge/v136-stack" \
  "${EG}/bridge/inject-shim"

# Bridge-only launchers (collector uses run_listen_prod.sh)
for f in run_bridge_jun11_good.sh run_bridge_prod.sh run_listen_jun11_good.sh start_bridge_background.sh \
  bus_recovery.sh uartd_common.sh stop_fixture_session.sh; do
  remove_if_exists "${EG}/bridge/${f}"
done

# Dropbox sync (optional on collector — remove if not used)
remove_if_exists \
  "${EG}/sync/sync_to_dropbox.sh" \
  "${EG}/sync/pull_fixture_shared_from_dropbox.sh" \
  "${EG}/sync/orchestrate_fixture.ps1" \
  "${EG}/sync/migrate_dropbox_paths.sh" \
  "${EG}/sync/migrate_field_layout.sh" \
  "${EG}/sync/switch_debug_bridge.sh" \
  "${EG}/sync/switch_prod_bridge.sh" \
  "${EG}/sync/diag_live_traffic.sh" \
  "${EG}/sync/verify_fixture_software.sh" \
  "${EG}/sync/upload_capture.rclone-filter" \
  "${EG}/sync/fixture_full.rclone-filter" \
  "${EG}/sync/fixture_timing.rclone-filter" \
  "${EG}/sync/fixture_shared.rclone-filter"

# Bridge prod supervisor (replaced by fixture-collector)
remove_if_exists "${EG}/Daemon/fixture_supervisor.py" "${EG}/Daemon/install_prod_service.sh"

# Jun11-good files not needed for listen-only
remove_if_exists \
  "${EG}/bridge/jun11-good/pog422_fixture_bridge.py" \
  "${EG}/bridge/jun11-good/hat_fixture_bridge.sh" \
  "${EG}/bridge/jun11-good/fixture_link_watch.py" \
  "${EG}/bridge/jun11-good/pog422_uart_client.py" \
  "${EG}/bridge/jun11-good/pog422_uart_capture.py" \
  "${EG}/bridge/jun11-good/br0_link_diag.sh" \
  "${EG}/bridge/jun11-good/br0_link_recover.sh" \
  "${EG}/bridge/jun11-good/disable_eth_eee.sh" \
  "${EG}/bridge/jun11-good/analyze_fixture_timing.py" \
  "${EG}/bridge/jun11-good/diff_sessions.py" \
  "${EG}/bridge/jun11-good/_checksum_result.txt" \
  "${EG}/bridge/jun11-good/SOURCE.txt" \
  "${EG}/bridge/jun11-good/WIRE_LEN_CHANGELOG.txt"

echo "=== prune_collector_pi DyzineFrame (dev/bench only) ==="
remove_if_exists \
  "${DF}/ohd_test.py" \
  "${DF}/ethergold_demo.py" \
  "${DF}/config.win11.ini" \
  "${DF}/run_win11.bat" \
  "${DF}/setup_win11.ps1" \
  "${DF}/ReleaseNotes.md" \
  "${DF}/reusable_odometer"

echo "Done. Kept: EtherGold listen stack, progressives.csv, DyzineFrame app + content."
