215 lines
5.5 KiB
Batchfile
215 lines
5.5 KiB
Batchfile
@echo off
|
|
setlocal EnableDelayedExpansion
|
|
|
|
REM ======================
|
|
REM Arguments processing
|
|
REM ======================
|
|
|
|
SET _DEV=0
|
|
SET _OFFLINE=0
|
|
SET _CLEAR=0
|
|
SET _RESET=0
|
|
SET _HELP=0
|
|
FOR %%A IN (%*) DO (
|
|
IF "%%A"=="/d" (
|
|
ECHO [INFO] Dev Mode enabled
|
|
SET _DEV=1
|
|
)
|
|
IF "%%A"=="/o" (
|
|
ECHO [INFO] Offile Mode enabled
|
|
SET _OFFLINE=1
|
|
)
|
|
IF "%%A"=="/c" (
|
|
ECHO [INFO] Clear Mode enabled
|
|
SET _CLEAR=1
|
|
)
|
|
IF "%%A"=="/r" (
|
|
ECHO [INFO] Reset Mode enabled
|
|
SET _RESET=1
|
|
)
|
|
IF "%%A"=="/h" (
|
|
ECHO [INFO] Help Mode enabled
|
|
SET _HELP=1
|
|
)
|
|
)
|
|
|
|
REM ======
|
|
REM Help
|
|
REM ======
|
|
IF %_HELP%==1 (
|
|
echo ======================================================
|
|
echo .\launch.bat - main utility to manage ChaChaGameRepo
|
|
echo ======================================================
|
|
echo Usage: launch.bat [/d] [/o] [/c] [/r] [/h]
|
|
echo /d : Development/Debug Mode
|
|
echo /o : Offline Mode ^(= no tools update^)
|
|
echo /c : Clear Mode ^(= remove downloaded files^)
|
|
echo /r : Reset Mode ^(= remove config files !^)
|
|
echo /h : This result
|
|
echo ======================================================
|
|
goto END
|
|
)
|
|
|
|
REM ===========
|
|
REM Constants
|
|
REM ===========
|
|
set GIT_EXE=%~dp0\Embedded\git\bin\git.exe
|
|
set PYTHON_PATH=%~dp0\Embedded\python
|
|
set PYTHON_EXE=%PYTHON_PATH%\python.exe
|
|
set PYTHON_VENV_PATH=%~dp0\Embedded\Runtime\VENV
|
|
set INSTALLER_REPO=https://chacha.ddns.net/gitea/chacha/ChaChaGameInstaller.git
|
|
set INSTALLER_PATH=%~dp0\Embedded\ChaChaGameInstaller
|
|
set FILE_LIST_REPO=https://chacha.ddns.net/gitea/chacha/ChaChaGameInstallerFileList.git
|
|
set FILE_LIST_PATH=%~dp0\Embedded\Runtime\FILE_LIST
|
|
set INSTALLER_SCRIPT_NAME=__main__.py
|
|
set CONFIG_PATH=%~dp0\Configuration
|
|
set STORAGE_PATH=%~dp0\Storage
|
|
|
|
IF %_DEV%==1 (
|
|
set INSTALLER_REPO_BRANCH=master
|
|
set FILE_LIST_REPO_BRANCH=master
|
|
) ELSE (
|
|
set INSTALLER_REPO_BRANCH=production
|
|
set FILE_LIST_REPO_BRANCH=production
|
|
)
|
|
|
|
IF %_DEV%==1 (
|
|
echo.
|
|
echo [INFO] Current Environment:
|
|
echo GIT_EXE = %GIT_EXE%
|
|
echo PYTHON_PATH = %PYTHON_PATH%
|
|
echo PYTHON_EXE = %PYTHON_EXE%
|
|
echo PYTHON_VENV_PATH = %PYTHON_VENV_PATH%
|
|
echo INSTALLER_REPO = %INSTALLER_REPO%
|
|
echo INSTALLER_REPO_BRANCH = %INSTALLER_REPO_BRANCH%
|
|
echo INSTALLER_PATH = %INSTALLER_PATH%
|
|
echo FILE_LIST_REPO = %FILE_LIST_REPO%
|
|
echo FILE_LIST_REPO_BRANCH = %FILE_LIST_REPO_BRANCH%
|
|
echo FILE_LIST_PATH = %FILE_LIST_PATH%
|
|
echo INSTALLER_SCRIPT_NAME = %INSTALLER_SCRIPT_NAME%
|
|
echo CONFIG_PATH = %CONFIG_PATH%
|
|
echo STORAGE_PATH = %STORAGE_PATH%
|
|
echo.
|
|
echo.
|
|
)
|
|
|
|
REM ========================
|
|
REM Clear / Reset handling
|
|
REM ========================
|
|
IF %_CLEAR%==1 (
|
|
echo [INFO] Clearing files ...
|
|
rd /s /q %PYTHON_VENV_PATH% >NUL 2>NUL
|
|
rd /s /q %INSTALLER_PATH% >NUL 2>NUL
|
|
rd /s /q %FILE_LIST_PATH% >NUL 2>NUL
|
|
rd /s /q %STORAGE_PATH% >NUL 2>NUL
|
|
mkdir %STORAGE_PATH%
|
|
echo [INFO] Done
|
|
echo.
|
|
)
|
|
|
|
IF %_RESET%==1 (
|
|
echo [INFO] Reseting config ...
|
|
rd /s /q %CONFIG_PATH% >NUL 2>NUL
|
|
mkdir %CONFIG_PATH%
|
|
echo [INFO] Done
|
|
echo.
|
|
)
|
|
|
|
IF %_CLEAR%==0 (
|
|
IF %_RESET%==0 (
|
|
goto NORMAL_FLOW
|
|
)
|
|
)
|
|
goto END
|
|
|
|
:NORMAL_FLOW
|
|
IF not exist %STORAGE_PATH% mkdir %STORAGE_PATH%
|
|
IF not exist %CONFIG_PATH% mkdir %CONFIG_PATH%
|
|
|
|
REM ========================================
|
|
REM Getting last version of game installer
|
|
REM ========================================
|
|
IF NOT %_OFFLINE%==1 (
|
|
rd /s /q %INSTALLER_PATH% >NUL 2>NUL
|
|
|
|
echo [INFO] Updating Installer to last version ...
|
|
%GIT_EXE% clone --single-branch --branch %INSTALLER_REPO_BRANCH% %INSTALLER_REPO% %INSTALLER_PATH% >NUL 2>NUL
|
|
if ERRORLEVEL 1 goto ERR_DEPLOY_GAME_INSTALLER
|
|
echo [INFO] Done
|
|
echo.
|
|
|
|
IF NOT %_DEV%==1 (
|
|
rd /s /q %INSTALLER_PATH%\.git >NUL 2>NUL
|
|
)
|
|
)
|
|
|
|
REM =========================================
|
|
REM Getting last version of game files list
|
|
REM =========================================
|
|
IF NOT %_OFFLINE%==1 (
|
|
rd /s /q %FILE_LIST_PATH% >NUL 2>NUL
|
|
|
|
echo [INFO] Updating Game Files List to last version ...
|
|
%GIT_EXE% clone --single-branch --branch %FILE_LIST_REPO_BRANCH% %FILE_LIST_REPO% %FILE_LIST_PATH%
|
|
if ERRORLEVEL 1 goto ERR_DEPLOY_GAME_FILE_LIST
|
|
echo [INFO] Done
|
|
echo.
|
|
|
|
IF NOT %_DEV%==1 (
|
|
rd /s /q %FILE_LIST_PATH%\.git >NUL 2>NUL
|
|
)
|
|
)
|
|
|
|
REM ==================================
|
|
REM Preparing execution environnment
|
|
REM ==================================
|
|
echo [INFO] Updating Environment to last version ...
|
|
rd /s /q %PYTHON_VENV_PATH% >NUL 2>NUL
|
|
|
|
%PYTHON_EXE% -m virtualenv %PYTHON_VENV_PATH% >NUL 2>NUL
|
|
if ERRORLEVEL 1 goto ERR_GENE_PYTHON_VENV
|
|
|
|
call %PYTHON_VENV_PATH%\Scripts\activate.bat >NUL 2>NUL
|
|
if ERRORLEVEL 1 goto ERR_ENABLE_PYTHON_VENV
|
|
|
|
python -m pip install --upgrade requests
|
|
if ERRORLEVEL 1 goto ERR_INSTALL_PYTHON_VENV
|
|
python -m pip install --upgrade libtorrent
|
|
if ERRORLEVEL 1 goto ERR_INSTALL_PYTHON_VENV
|
|
python -m pip install --upgrade upnpclient
|
|
if ERRORLEVEL 1 goto ERR_INSTALL_PYTHON_VENV
|
|
|
|
SET PATH=%path%;%~dp0\Embedded\libtorrent
|
|
|
|
echo [INFO] Done
|
|
echo.
|
|
|
|
REM =============================
|
|
REM Running the Storage Manager
|
|
REM =============================
|
|
echo [INFO] Running the installer ...
|
|
REM python %INSTALLER_PATH%\%INSTALLER_SCRIPT_NAME%
|
|
python %~dp0\test.py
|
|
echo [INFO] Done
|
|
echo.
|
|
|
|
goto END
|
|
|
|
:ERR_DEPLOY_GAME_INSTALLER
|
|
echo [ERROR] Game Installer update failed.
|
|
exit /b 10
|
|
|
|
:ERR_DEPLOY_GAME_FILE_LIST
|
|
echo [ERROR] Game File List update failed.
|
|
exit /b 20
|
|
|
|
:ERR_GENE_PYTHON_VENV
|
|
echo [ERROR] Can not generate Python VEnv
|
|
exit /b 30
|
|
|
|
:ERR_INSTALL_PYTHON_VENV
|
|
echo [ERROR] Can not install package in Python VEnv
|
|
exit /b 40
|
|
|
|
:END
|
|
pause |