Update Download Modpack.bat

Cleaned up some code; Automated the MO2 install fully with a new user input method to acquire the game path.
This commit is contained in:
Rage 2025-01-16 02:24:37 -05:00
parent a84001c8bf
commit 23dc6d93c3
1 changed files with 64 additions and 16 deletions

View File

@ -4,6 +4,12 @@
set "mo2_install=%cd%" set "mo2_install=%cd%"
set "repository=%mo2_install%\Fika-Tarkov" set "repository=%mo2_install%\Fika-Tarkov"
:: Specifying links to download for files
set "git_repository=https://files.moddinglounge.com/Rage/Fika-Tarkov.git"
set "git_file=https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/PortableGit-2.47.1-64-bit.7z.exe"
set "SevenZ_file=https://www.7-zip.org/a/7zr.exe"
set "mo2_file=https://github.com/ModOrganizer2/modorganizer/releases/download/v2.5.2/Mod.Organizer-2.5.2.7z"
:: Set path to the portable Git executable :: Set path to the portable Git executable
set "portable_git=%mo2_install%\PortableGit\bin\git.exe" set "portable_git=%mo2_install%\PortableGit\bin\git.exe"
set "portable_7z=%mo2_install%\7zr.exe" set "portable_7z=%mo2_install%\7zr.exe"
@ -22,7 +28,7 @@ if not exist "%mo2_install%\PortableGit\bin\git.exe" (
echo ---- echo ----
echo Installing Portable Git... echo Installing Portable Git...
:: Download Git Portable :: Download Git Portable
curl -L -o PortableGit-2.47.1-64-bit.7z.exe https://github.com/git-for-windows/git/releases/download/v2.47.1.windows.1/PortableGit-2.47.1-64-bit.7z.exe curl -L -o PortableGit-2.47.1-64-bit.7z.exe %git_file%
if %errorlevel% neq 0 ( if %errorlevel% neq 0 (
echo ERROR: Failed to download Git Portable. Check your internet connection and try again. echo ERROR: Failed to download Git Portable. Check your internet connection and try again.
@ -41,7 +47,7 @@ if not exist "%mo2_install%\7zr.exe" (
echo ---- echo ----
echo Installing 7zip Portable... echo Installing 7zip Portable...
:: Download 7zip Portable :: Download 7zip Portable
curl -L -o 7zr.exe https://www.7-zip.org/a/7zr.exe curl -L -o 7zr.exe %SevenZ_file%
) )
:: Determining if an installation exists already :: Determining if an installation exists already
@ -64,10 +70,10 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
timeout 10 timeout 10
:: Clone or update the Git repository :: Clone or update the Git repository
if not exist "Fika-Tarkov\.git" ( if not exist "%repository%\.git" (
echo ---- echo ----
echo Cloning repository... echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git "%portable_git%" clone %git_repository%
) else ( ) else (
echo ---- echo ----
echo Repository already exists. Pulling latest changes... echo Repository already exists. Pulling latest changes...
@ -84,18 +90,11 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo Synchronizing profiles folder... echo Synchronizing profiles folder...
robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR
echo ----
echo Synchronizing stylesheets folder...
robocopy "%repository%/stylesheets" "%mo2_install%/stylesheets" /E
echo ----
echo Synchronizing plugins folder...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E
pause pause
exit /B 0 exit /B 0
:InstallModpack :InstallModpack
echo.
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo WARNING! The script will install the modpack in the folder this script is ran from! echo WARNING! The script will install the modpack in the folder this script is ran from!
echo Be sure that your folder is empty before continuing with the installation! echo Be sure that your folder is empty before continuing with the installation!
@ -108,9 +107,19 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
timeout 30 timeout 30
:: Requiring user input for game path :: Requiring user input for game path
echo ----
set /p "game_path=Please enter the path to your game installation: "
if "%game_path%"=="" (
echo.
echo No path entered. Exiting.
echo.
pause
exit /b 1
)
:: Download MO2 :: Download MO2
curl -L -o MO2.7z https://github.com/ModOrganizer2/modorganizer/releases/download/v2.5.2/Mod.Organizer-2.5.2.7z curl -L -o MO2.7z %mo2_file%
if %errorlevel% neq 0 ( if %errorlevel% neq 0 (
echo ERROR: Failed to download the archive. Check your internet connection and try again. echo ERROR: Failed to download the archive. Check your internet connection and try again.
pause pause
@ -138,7 +147,7 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo ---- echo ----
echo Cloning repository... echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git "%portable_git%" clone %git_repository%
echo ---- echo ----
echo Synchronizing mods folder... echo Synchronizing mods folder...
@ -148,13 +157,52 @@ IF EXIST "%mo2_install%\ModOrganizer.exe" (
echo Synchronizing profiles folder... echo Synchronizing profiles folder...
robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR robocopy "%repository%/profiles" "%mo2_install%/profiles" /MIR
echo ----
echo Synchronizing plugins folder...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E
echo ---- echo ----
echo Synchronizing stylesheets folder... echo Synchronizing stylesheets folder...
robocopy "%repository%/stylesheets" "%mo2_install%/stylesheets" /E robocopy "%repository%/stylesheets" "%mo2_install%/stylesheets" /E
:: Escape backslashes in the game path
setlocal enabledelayedexpansion
set "game_path=!game_path:\=/!"
set "escaped_path="
for /l %%i in (0,1,255) do (
for /f "tokens=1,* delims=" %%a in ("!game_path:~%%i,1!") do (
if "%%a"=="" goto path_done
if %%a==/ (
set "escaped_path=!escaped_path!//" :: Double the backslash
) else (
set "escaped_path=!escaped_path!%%a"
)
)
)
:path_done
echo Original Path: %game_path%
echo Escaped Path: %escaped_path%
:: Replace placeholders in ModOrganizer.ini
echo ---- echo ----
echo Synchronizing plugins folder... echo Updating ModOrganizer.ini...
robocopy "%repository%/plugins" "%mo2_install%/plugins" /E set "ini_file=%repository%\ModOrganizer.ini"
set "temp_ini=%ini_file%.tmp"
(for /f "usebackq delims=" %%A in ("%ini_file%") do (
set "line=%%A"
set "line=!line:game_path=%escaped_path%!"
set "line=!line:replace_me=%game_path%!"
echo(!line!
)) > "%temp_ini%"
move /y "%temp_ini%" "%mo2_install%\ModOrganizer.ini"
echo ----
echo ModOrganizer.ini updated successfully!
echo ---- echo ----
echo Installation complete. Launch ModOrganizer.exe and follow the remaining instructions. echo Installation complete. Launch ModOrganizer.exe and follow the remaining instructions.