#!/bin/bash

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

# === Charger la config externe ===
# Définit le chemin vers le fichier de configuration des thèmes
CONFIG_FILE="./config/richkit/themes.conf"
# Vérifie si le fichier de configuration existe
if [ ! -f "$CONFIG_FILE" ]; then
  echo "❌ Fichier de config '$CONFIG_FILE' introuvable."
  exit 1
fi

# Charge les variables de configuration depuis le fichier themes.conf
source "$CONFIG_FILE"

# === Importer les fonctions utilitaires ===
# Charge les fonctions communes utilisées par les différents scripts
source ./config/richkit/scripts/utils.sh

# Récupère l'action demandée et sa cible (si nécessaire)
ACTION="$1"
TARGET="$2"

# Gestion des différentes commandes disponibles
case "$ACTION" in
  status)
    # Affiche l'état actuel de l'installation
    source ./config/richkit/scripts/status.sh
    ;;
  wp-install)
    # Installe WordPress et ses dépendances
    source ./config/richkit/scripts/wp-install.sh
    ;;
  wp-uninstall)
    # Désinstalle WordPress et nettoie l'installation
    source ./config/richkit/scripts/wp-uninstall.sh
    ;;
  wp-update)
    # Met à jour WordPress et ses dépendances
    source ./config/richkit/scripts/wp-update.sh
    ;;
  symlink|git)
    # Gère l'installation de thèmes via symlink ou git
    # Vérifie qu'une cible est spécifiée
    if [ -z "$TARGET" ]; then show_help; exit 1; fi
    source ./config/richkit/scripts/theme-install.sh "$ACTION" "$TARGET"
    ;;
  remove)
    # Supprime un thème
    # Vérifie qu'une cible est spécifiée
    if [ -z "$TARGET" ]; then show_help; exit 1; fi
    source ./config/richkit/scripts/theme-remove.sh "$TARGET"
    ;;
  server-ready)
    # Prépare le thème pour la production
    source ./config/richkit/scripts/server-ready.sh
    ;;
    # Installation de composer (ovh)
  composer-setup)
    source ./config/richkit/scripts/composer-setup.sh
    ;;
    # Mise à jour de composer (ovh)
  composer-selfupdate)
    source ./config/richkit/scripts/composer-selfupdate.sh
    ;;
  *)
    # Affiche l'aide si la commande n'est pas reconnue
    show_help
    ;;
esac
