#!/usr/bin/env zsh
# llm-sync.sh — Sync working scripts to the collab git repo.
#
# Usage: ./llm-sync.sh [--check]
#   --check   Diff only; exit non-zero if anything is out of sync (CI-friendly)
#
# Source of truth: ~/src/tmptmp/local-llm-clean/scripts/
# Destination:     ~/src/collab/lvona/local-llm/scripts/

set -euo pipefail

SRC="$(dirname "$0")"
DST="$HOME/src/collab/lvona/local-llm/scripts"
CHECK_ONLY=${1:-""}

if [[ ! -d "$DST" ]]; then
  echo "ERROR: collab scripts dir not found: $DST" >&2
  exit 1
fi

DRIFT=0
for f in "$SRC"/*.sh "$SRC"/*.py "$SRC"/*.conf; do
  name=$(basename "$f")
  dest="$DST/$name"
  if [[ ! -f "$dest" ]]; then
    echo "NEW   $name (not in collab)"
    DRIFT=1
  elif ! diff -q "$f" "$dest" >/dev/null 2>&1; then
    echo "DIFF  $name"
    diff "$f" "$dest" | head -8
    DRIFT=1
  else
    echo "OK    $name"
  fi
done

if [[ "$CHECK_ONLY" == "--check" ]]; then
  [[ $DRIFT -eq 0 ]] && echo "\nAll scripts in sync ✅" && exit 0
  echo "\nDrift detected ❌ — run ./llm-sync.sh to sync" >&2
  exit 1
fi

if [[ $DRIFT -eq 0 ]]; then
  echo "\nAll scripts already in sync ✅"
  exit 0
fi

echo ""
read -q "REPLY?Sync to collab? [y/N] " || { echo "\nAborted."; exit 0; }
echo ""

for f in "$SRC"/*.sh "$SRC"/*.py "$SRC"/*.conf; do
  name=$(basename "$f")
  dest="$DST/$name"
  cp "$f" "$dest"
  echo "  → $name"
done

echo "\nSync complete ✅ — commit collab when ready."
