Files
RGSX/RGSX.bat

180 lines
6.8 KiB
Batchfile

@echo off
setlocal EnableDelayedExpansion
<<<<<<< HEAD
:: Définir le fichier de log
set LOG_FILE=%CD%\python_execution_log.txt
:: Ajouter un horodatage au début du log
echo [%DATE% %TIME%] Démarrage du script >> "%LOG_FILE%"
:: Afficher un message de démarrage
cls
echo Exécution de __main__.py pour RetroBat...
echo [%DATE% %TIME%] Exécution de __main__.py pour RetroBat >> "%LOG_FILE%"
:: Définir les chemins relatifs
set TOOLS_FOLDER=..\..\..\system\tools
set EMULATOR_LAUNCHER=..\..\..\emulationstation\emulatorLauncher.exe
set PYTHON_EXE=python.exe
set MAIN_SCRIPT=__main__.py
set CURRENT_DIR=%CD%
set "PYTHON_EXE_FULL=%CURRENT_DIR%\!TOOLS_FOLDER!\Python\!PYTHON_EXE!"
set "MAIN_SCRIPT_FULL=%CURRENT_DIR%\!MAIN_SCRIPT!"
:: Afficher et logger les variables
echo TOOLS_FOLDER : !TOOLS_FOLDER!
echo [%DATE% %TIME%] TOOLS_FOLDER : !TOOLS_FOLDER! >> "%LOG_FILE%"
echo EMULATOR_LAUNCHER : !EMULATOR_LAUNCHER!
echo [%DATE% %TIME%] EMULATOR_LAUNCHER : !EMULATOR_LAUNCHER! >> "%LOG_FILE%"
echo PYTHON_EXE : !PYTHON_EXE!
echo [%DATE% %TIME%] PYTHON_EXE : !PYTHON_EXE! >> "%LOG_FILE%"
echo MAIN_SCRIPT : !MAIN_SCRIPT!
echo [%DATE% %TIME%] MAIN_SCRIPT : !MAIN_SCRIPT! >> "%LOG_FILE%"
echo CURRENT_DIR : !CURRENT_DIR!
echo [%DATE% %TIME%] CURRENT_DIR : !CURRENT_DIR! >> "%LOG_FILE%"
echo PYTHON_EXE_FULL : !PYTHON_EXE_FULL!
echo [%DATE% %TIME%] PYTHON_EXE_FULL : !PYTHON_EXE_FULL! >> "%LOG_FILE%"
echo MAIN_SCRIPT_FULL : !MAIN_SCRIPT_FULL!
echo [%DATE% %TIME%] MAIN_SCRIPT_FULL : !MAIN_SCRIPT_FULL! >> "%LOG_FILE%"
:: Vérifier si l'exécutable Python existe
echo Vérification de python.exe...
echo [%DATE% %TIME%] Vérification de python.exe à !PYTHON_EXE_FULL! >> "%LOG_FILE%"
if not exist "!PYTHON_EXE_FULL!" (
echo Python.exe non trouvé. Préparation du téléchargement...
echo [%DATE% %TIME%] Python.exe non trouvé. Préparation du téléchargement... >> "%LOG_FILE%"
:: Définir les chemins pour le téléchargement et l'extraction
set ZIP_URL=https://retrogamesets.fr/softs/python.zip
echo ZIP_URL : !ZIP_URL!
echo [%DATE% %TIME%] ZIP_URL : !ZIP_URL! >> "%LOG_FILE%"
if not exist "!TOOLS_FOLDER!\Python" (
echo Création du dossier !TOOLS_FOLDER!\Python...
echo [%DATE% %TIME%] Création du dossier !TOOLS_FOLDER!\Python... >> "%LOG_FILE%"
mkdir "!TOOLS_FOLDER!\Python"
)
set ZIP_FILE=!TOOLS_FOLDER!\python.zip
echo ZIP_FILE : !ZIP_FILE!
echo [%DATE% %TIME%] ZIP_FILE : !ZIP_FILE! >> "%LOG_FILE%"
echo Téléchargement de python.zip...
echo [%DATE% %TIME%] Téléchargement de python.zip depuis !ZIP_URL!... >> "%LOG_FILE%"
:: Afficher un message de progression pendant le téléchargement
echo Téléchargement en cours...
curl -L "!ZIP_URL!" -o "!ZIP_FILE!"
if exist "!ZIP_FILE!" (
echo Téléchargement terminé. Extraction de python.zip...
echo [%DATE% %TIME%] Téléchargement terminé. Extraction de python.zip vers !TOOLS_FOLDER!\Python... >> "%LOG_FILE%"
:: Afficher des messages de progression pendant l'extraction
echo Extraction en cours...
tar -xf "!ZIP_FILE!" -C "!TOOLS_FOLDER!\Python" --strip-components=0
echo Extraction terminée.
echo [%DATE% %TIME%] Extraction terminée. >> "%LOG_FILE%"
del /q "!ZIP_FILE!"
echo Fichier python.zip supprimé.
echo [%DATE% %TIME%] Fichier python.zip supprimé. >> "%LOG_FILE%"
) else (
echo Erreur : Échec du téléchargement de python.zip.
echo [%DATE% %TIME%] Erreur : Échec du téléchargement de python.zip. >> "%LOG_FILE%"
goto :error
)
:: Vérifier à nouveau si python.exe existe après extraction
if not exist "!PYTHON_EXE_FULL!" (
echo Erreur : python.exe n'a pas été trouvé après extraction à !PYTHON_EXE_FULL!.
echo [%DATE% %TIME%] Erreur : python.exe n'a pas été trouvé après extraction à !PYTHON_EXE_FULL! >> "%LOG_FILE%"
goto :error
)
)
echo python.exe trouvé.
echo [%DATE% %TIME%] python.exe trouvé. >> "%LOG_FILE%"
:: Vérifier si le script Python existe
echo Vérification de __main__.py...
echo [%DATE% %TIME%] Vérification de __main__.py à !MAIN_SCRIPT_FULL! >> "%LOG_FILE%"
if not exist "!MAIN_SCRIPT_FULL!" (
echo Erreur : __main__.py n'a pas été trouvé à !MAIN_SCRIPT_FULL!.
echo [%DATE% %TIME%] Erreur : __main__.py n'a pas été trouvé à !MAIN_SCRIPT_FULL! >> "%LOG_FILE%"
goto :error
)
echo __main__.py trouvé.
echo [%DATE% %TIME%] __main__.py trouvé. >> "%LOG_FILE%"
:: Exécuter le script Python
echo Exécution de __main__.py...
echo [%DATE% %TIME%] Exécution de __main__.py avec !PYTHON_EXE_FULL! >> "%LOG_FILE%"
"!PYTHON_EXE_FULL!" "!MAIN_SCRIPT_FULL!"
if %ERRORLEVEL% equ 0 (
echo Exécution terminée avec succès.
echo [%DATE% %TIME%] Exécution de __main__.py terminée avec succès. >> "%LOG_FILE%"
) else (
echo Erreur : Échec de l'exécution de __main__.py (code %ERRORLEVEL%).
echo [%DATE% %TIME%] Erreur : Échec de l'exécution de __main__.py avec code d'erreur %ERRORLEVEL%. >> "%LOG_FILE%"
goto :error
)
:end
echo Tâche terminée.
echo [%DATE% %TIME%] Tâche terminée avec succès. >> "%LOG_FILE%"
=======
:: Vérifier si Python est installé
echo Vérification de la présence de Python...
where python >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo Python est déjà installé.
python --version
goto :end
)
:: Python non trouvé, procéder au téléchargement
echo Python non trouvé. Téléchargement en cours...
set PYTHON_VERSION=3.13.5
set PYTHON_INSTALLER=python-%PYTHON_VERSION%-amd64.exe
set DOWNLOAD_URL=https://www.python.org/ftp/python/%PYTHON_VERSION%/%PYTHON_INSTALLER%
:: Créer un dossier temporaire
set TEMP_DIR=%TEMP%\PythonInstall
mkdir "%TEMP_DIR%"
:: Télécharger l'installateur
echo Téléchargement de Python %PYTHON_VERSION%...
powershell -Command "Invoke-WebRequest -Uri %DOWNLOAD_URL% -OutFile %TEMP_DIR%\%PYTHON_INSTALLER%"
:: Vérifier si le téléchargement a réussi
if not exist "%TEMP_DIR%\%PYTHON_INSTALLER%" (
echo Erreur : Échec du téléchargement de l'installateur.
goto :error
)
:: Installer Python
echo Installation de Python...
start /wait "" "%TEMP_DIR%\%PYTHON_INSTALLER%" /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
:: Vérifier si l'installation a réussi
where python >nul 2>&1
if %ERRORLEVEL% equ 0 (
echo Python a été installé avec succès.
python --version
) else (
echo Erreur : L'installation de Python a échoué.
goto :error
)
:: Nettoyage
echo Nettoyage des fichiers temporaires...
rd /s /q "%TEMP_DIR%"
:end
echo Script terminé. Lancement de RGSX
python __main__.py
pause
>>>>>>> d5d5fa0991ce487dc11335a0d27345e48fa2ac4c
exit /b 0
:error
echo Une erreur s'est produite.
<<<<<<< HEAD
echo [%DATE% %TIME%] Une erreur s'est produite. >> "%LOG_FILE%"
=======
rd /s /q "%TEMP_DIR%"
pause
>>>>>>> d5d5fa0991ce487dc11335a0d27345e48fa2ac4c
exit /b 1