#!/usr/bin/env bash
# MaJ du module einvoicing (sous-dossier du monorepo dolibarr-community-modules).
#   update-einvoicing.sh         -> DRY-RUN
#   update-einvoicing.sh apply   -> applique (backup + php -l)
# Source amont par defaut (Dolibarr). Pour passer par le FORK Pichinov: REMOTE=origin update-einvoicing.sh [apply]
# NB: clone de consommation (aucun patch local ici -> reset --hard sur la ref recuperee, robuste en shallow).
set -euo pipefail
SRC=~/pichinov/_src/dcm ; SUB=einvoicing ; LIVE=~/pichinov/dolibarr/htdocs/custom/einvoicing
REMOTE="${REMOTE:-upstream}" ; BRANCH="${BRANCH:-main}" ; MODE="${1:-dry}"
echo "== fetch $REMOTE/$BRANCH =="
git -C "$SRC" fetch --depth 1 "$REMOTE" "$BRANCH"
git -C "$SRC" reset --hard FETCH_HEAD >/dev/null
echo "source @ $(git -C "$SRC" log -1 --format=%h) | VERSION live: $(cat "$LIVE/VERSION" 2>/dev/null || echo ?) -> source: $(cat "$SRC/$SUB/VERSION" 2>/dev/null || echo ?)"
DRY=(--dry-run -i)
if [ "$MODE" = apply ]; then TS=$(date +%Y%m%d-%H%M%S); B=~/pichinov/_modbak_einvoicing_$TS; cp -a "$LIVE" "$B"; echo "backup -> $B"; DRY=(); fi
rsync -a ${DRY[@]+"${DRY[@]}"} --delete --exclude=.git --exclude=.github "$SRC/$SUB/" "$LIVE/"
if [ "$MODE" = apply ]; then
  echo "== php -l =="; find "$LIVE" -name "*.php" -not -path "*/vendor/*" | while read -r f; do php -l "$f" >/dev/null || echo "  ERR $f"; done
  echo "Fait. Si bump de version avec migration SQL: Accueil>Config>Modules (Dolibarr detecte/applique)."
else echo "(dry-run) applique avec: bash ~/pichinov/update-einvoicing.sh apply"; fi
