#!/usr/bin/env bash
# Fix root-owned or empty legacy fixture-timing/ and re-pull scripts (pos2–4 stub).
#
# Usage:
#   cd ~/EtherGold/sync
#   bash fix_fixture_timing_tree.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

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

FIXTURE="${ETHERGOLD_LEGACY_FIXTURE}"
TIMING="${ETHERGOLD_LEGACY_TIMING}"

echo "=== fix_fixture_timing_tree ==="
echo "Timing: ${TIMING}"
echo ""
echo "Prefer PC push when Pi rclone hangs:"
echo "  Windows: cd sync && powershell -File .\\push_legacy_timing_from_pc.ps1"
echo ""

if [[ "${SKIP_PULL:-0}" == "1" ]]; then
  echo "SKIP_PULL=1 — chown + env only"
else
  echo "Running pull (set SKIP_PULL=1 to skip if using push_legacy_timing_from_pc.ps1)..."
fi

if [[ -d "${TIMING}" ]]; then
  owner="$(stat -c '%U' "${TIMING}" 2>/dev/null || echo unknown)"
  if [[ "${owner}" != "${USER:-topbox}" ]]; then
    echo "chown ${TIMING} (was ${owner})"
    sudo chown -R "${USER:-topbox}:${USER:-topbox}" "${TIMING}" "${FIXTURE}" 2>/dev/null || true
  fi
fi

mkdir -p "${TIMING}/data" "${TIMING}/logs"
chown -R "${USER:-topbox}:${USER:-topbox}" "${TIMING}/data" "${TIMING}/logs" 2>/dev/null || true

bash "${SYNC}/install_fixture_bridge_env.sh" --force

if [[ "${SKIP_PULL:-0}" != "1" ]]; then
  PULL_LAYOUT=legacy bash "${SYNC}/pull_fixture_shared_from_dropbox.sh"
fi

if [[ -f "${TIMING}/jun11-good/pog422_fixture_core.py" ]]; then
  echo "OK: jun11-good present under legacy fixture-timing"
else
  echo "WARN: jun11-good still missing — check rclone / Dropbox sync on PC" >&2
  exit 1
fi

bash "${SYNC}/show_fixture_layout.sh"
