#!/bin/bash

# Arrête l'exécution du script si une commande échoue
set -e

# === Charger les utilitaires et la config ===
# Charge les fonctions utilitaires communes
source ./config/richkit/scripts/utils.sh
# Charge la configuration des thèmes
source_config

# === Vérifier la présence de .env ===
# Vérifie la présence du fichier .env
check_env_file
# Charge les variables d'environnement
load_env

# === Mode dry-run : simule les mises à jour sans les appliquer ===
# Permet de voir quelles mises à jour seraient effectuées sans les appliquer
if [[ "$1" == "--dry-run" ]]; then
  echo
  echo "🔍 Simulation des mises à jour disponibles (dry-run)..."
  # --dry-run : simule les mises à jour sans les appliquer
  # --with-all-dependencies : inclut aussi les dépendances indirectes
  composer update --with-all-dependencies --dry-run
  exit 0
fi

# === Mode outdated : affiche juste les paquets obsolètes ===
# Liste uniquement les paquets qui ont des versions plus récentes disponibles
if [[ "$1" == "--outdated" ]]; then
  echo
  echo "📦 Liste des paquets obsolètes :"
  # || true : continue même si la commande échoue (pas de paquets obsolètes)
  composer outdated || true
  exit 0
fi

# === Mise à jour réelle ===
# Mode par défaut : effectue la mise à jour réelle de toutes les dépendances
echo
echo "🚀 Mise à jour des dépendances (Composer racine)..."
# Met à jour toutes les dépendances, y compris les dépendances indirectes
composer update --with-all-dependencies

echo
echo "✅ Mise à jour terminée."
