#!/bin/bash
# Script wrapper pour exécuter rgsx-update.sh et quitter RGSX
RGSX_UPDATE_SCRIPT="/userdata/roms/ports/rgsx-update.sh"
LOG_DIR="/userdata/roms/ports/logs"
LOG_FILE="$LOG_DIR/rgsx_update.log"

# Créer le répertoire de logs s'il n'existe pas
mkdir -p "$LOG_DIR"
if [ ! -d "$LOG_DIR" ]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Erreur : Impossible de créer $LOG_DIR" >&2
    exit 1
fi

# Journaliser l'exécution
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Exécution de run-update.sh" >> "$LOG_FILE"
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Vérification de l'existence de $RGSX_UPDATE_SCRIPT" >> "$LOG_FILE"
if [ ! -f "$RGSX_UPDATE_SCRIPT" ]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Erreur : $RGSX_UPDATE_SCRIPT n'existe pas" >> "$LOG_FILE"
    exit 1
fi
if [ ! -x "$RGSX_UPDATE_SCRIPT" ]; then
    echo "[$(date '+%Y-%m-%d %H:%M:%S')] Rendre $RGSX_UPDATE_SCRIPT exécutable" >> "$LOG_FILE"
    chmod +x "$RGSX_UPDATE_SCRIPT"
fi

# Tuer les processus RGSX existants
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Terminaison des processus RGSX" >> "$LOG_FILE"
ps aux | grep '[p]ython3.*RGSX' | awk '{print $2}' >> "$LOG_FILE"
ps aux | grep '[p]ython3.*RGSX' | awk '{print $2}' | xargs kill -15 2>> "$LOG_FILE"
sleep 1
ps aux | grep '[p]ython3.*RGSX' | awk '{print $2}' >> "$LOG_FILE"
ps aux | grep '[p]ython3.*RGSX' | awk '{print $2}' | xargs kill -9 2>> "$LOG_FILE"

# Exécuter rgsx-update.sh
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Exécution de $RGSX_UPDATE_SCRIPT" >> "$LOG_FILE"
bash "$RGSX_UPDATE_SCRIPT" CONSOLE >> "$LOG_FILE" 2>&1
exit_code=$?
echo "[$(date '+%Y-%m-%d %H:%M:%S')] Code de retour de $RGSX_UPDATE_SCRIPT : $exit_code" >> "$LOG_FILE"

exit $exit_code