#!/bin/bash
# kaleido-pull.sh — Pull SÛR du module Kaleido.
#
# Pourquoi : le hook post-merge patche lib/kaleido.lib.php et lib/security.lib.php
# (bypass KALEIDO_DEV_MODE). Ces fichiers deviennent "modifiés localement", ce qui
# fait échouer le git pull suivant. Ce patch étant régénéré par le hook à chaque
# merge, on peut le jeter avant de puller sans rien perdre.
#
# Usage :  ~/kaleido-pull.sh [chemin_module_kaleido]
#          (par défaut : répertoire courant)

KDIR="${1:-$PWD}"
cd "$KDIR" 2>/dev/null || { echo "❌ Répertoire introuvable : $KDIR"; exit 1; }
[ -d .git ] || { echo "❌ Pas un dépôt git : $KDIR"; exit 1; }

PATCHED="lib/kaleido.lib.php lib/security.lib.php"

echo "→ Module : $KDIR"
echo "→ Version avant : $(grep -m1 'this->version' core/modules/modKaleido.class.php 2>/dev/null | grep -oE "'[0-9][^']*'")"

# Garde-fou : ne jeter que si la modif locale est PUREMENT additive (= notre patch).
DEL=$(git diff -- $PATCHED 2>/dev/null | grep -E '^-' | grep -vE '^---')
if [ -n "$DEL" ]; then
  echo "🔴 STOP : des lignes d'origine sont supprimées localement — ce n'est pas que le patch."
  echo "$DEL" | head -5
  echo "   Examine avec : git diff -- $PATCHED"
  exit 1
fi

# Autres fichiers modifiés que les 2 patchés ? -> on n'y touche pas, on alerte.
OTHER=$(git status --porcelain | grep -v '^??' | grep -vE 'lib/(kaleido|security)\.lib\.php')
if [ -n "$OTHER" ]; then
  echo "🔴 STOP : d'autres fichiers sont modifiés localement :"
  echo "$OTHER"
  echo "   Valide/remise-les d'abord (git stash), puis relance."
  exit 1
fi

echo "→ Patch local jeté (le hook le ré-appliquera)"
git checkout -- $PATCHED 2>/dev/null

echo "→ git pull origin develop"
git pull origin develop || { echo "❌ Pull en échec"; exit 1; }

echo "→ Version après : $(grep -m1 'this->version' core/modules/modKaleido.class.php 2>/dev/null | grep -oE "'[0-9][^']*'")"
for f in $PATCHED; do
  printf "→ %s : " "$f"
  grep -q "KALEIDO_DEV_MODE" "$f" 2>/dev/null && echo "patché ✅" || echo "NON patché ⚠️"
done
echo "✅ Terminé. Pense à réactiver le module si de nouvelles tables sont livrées."
