#!/bin/bash
# Reprise de la mise à jour 1.7.8.11 après l'échec du téléchargement du pack de langue (9 octobre 2026).
# La base est déjà à jour ; on installe le pack français à la main, puis on relance les dernières étapes
# (mise à jour des modules, nettoyage de la base, fin). Fichier à avoir dans ~/maj-1.7.8.11/ : sf-fr-FR.zip
M=~/maj-1.7.8.11
B=~/alchimistes.fr
S=~/sauvegardes
cd "$B" || exit 1
ADMIN=$(for d in */; do [ -f "$d/init.php" ] && [ -f "$d/ajax.php" ] && [ -d "$d/themes" ] && echo "${d%/}"; done | head -1)
[ -f "$M/sf-fr-FR.zip" ] || { echo "MANQUE : sf-fr-FR.zip"; exit 1; }
D=$(date +%Y%m%d-%H%M)
echo "1. Pack de langue français"
cp "$M/sf-fr-FR.zip" translations/ && unzip -oq translations/sf-fr-FR.zip -d app/Resources/translations/ && echo "   $(ls app/Resources/translations/fr-FR | wc -l) fichiers de traduction"
echo "2. Dernières étapes de la mise à jour"
cp app/config/parameters.php "$S/parameters-avant-reprise-$D.php"
sed -i "s/\.privatesql'/.eu.clouddb.ovh.net'/" app/config/parameters.php
ARGS="modules/autoupgrade/cli-upgrade-alch.php --dir=$ADMIN --channel=archive --action=upgradeModules"
for n in $(seq 1 100); do
  php -d memory_limit=1G -d max_execution_time=0 $ARGS > "$M/etape.log" 2>&1
  cat "$M/etape.log" >> "$M/reprise-$D.log"
  grep -E "=== Step|ERROR|Fatal|modules left|Congratulations" "$M/etape.log" | sort -u | cut -c1-160
  suite=$(grep -o '\$ modules/autoupgrade/cli-upgrade-alch.php .*' "$M/etape.log" | tail -1 | sed 's/^\$ //')
  [ -z "$suite" ] && break
  ARGS="$suite"
done
echo "3. Remise en place"
grep -q "privatesql" "$S/parameters-avant-reprise-$D.php" && sed -i "s/\.eu\.clouddb\.ovh\.net'/.privatesql'/" app/config/parameters.php && echo "   nom interne du serveur de base remis : $(grep -c privatesql app/config/parameters.php)"
php -l app/config/parameters.php
for c in var/cache/prod var/cache/dev; do [ -d "$c" ] && mv "$c" "$c-apres-reprise-$D"; done
echo "== fin : la boutique est toujours en MAINTENANCE."
