Fika-Tarkov/Download Modpack.bat

164 lines
5.0 KiB
Batchfile

@echo off
:: Setting initial paths
set "mo2_install=%cd%"
set "repository=%mo2_install%\Fika-Tarkov"
:: Set path to the portable Git executable
set "portable_git=%mo2_install%\PortableGit\bin\git.exe"
set "portable_7z=%mo2_install%\7zr.exe"
:: Check if curl is installed
where curl >nul 2>nul
if %errorlevel% neq 0 (
echo ERROR: curl is not installed or not in your PATH.
echo Please install curl or ensure it is in your PATH and try again.
pause
exit /b
)
:: Checking if Git Portable exists
if not exist "%mo2_install%\PortableGit\bin\git.exe" (
echo ----
echo Installing Portable Git...
:: 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
if %errorlevel% neq 0 (
echo ERROR: Failed to download Git Portable. Check your internet connection and try again.
pause
exit /b
)
:: Run the portable executable to setup
start PortableGit-2.47.1-64-bit.7z.exe
echo ----
set /p userInput=Press Enter once the Portable Git installation has finished.
)
:: Check if 7z is installed
if not exist "%mo2_install%\7zr.exe" (
echo ----
echo Installing 7zip Portable...
:: Download 7zip Portable
curl -L -o 7zr.exe https://www.7-zip.org/a/7zr.exe
)
:: Determining if an installation exists already
IF EXIST "%mo2_install%\ModOrganizer.exe" (
call :UpdateModpack
exit /B 0
) ELSE (
call :InstallModpack
exit /B 0
)
:UpdateModpack
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo WARNING! Existing installation detected!
echo Be sure to save a backup of your changes if you want to keep them!
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
echo.
echo Existing installation detected! Updating modpack, please wait.
timeout 10
:: Clone or update the Git repository
if not exist "Fika-Tarkov\.git" (
echo ----
echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git
) else (
echo ----
echo Repository already exists. Pulling latest changes...
cd %repository%
git fetch --all
git reset --hard origin/main
)
echo ----
echo Synchronizing mods folder...
robocopy "%repository%/mods" "%mo2_install%/mods" /MIR
echo ----
echo Synchronizing profiles folder...
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
exit /B 0
:InstallModpack
echo !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
setlocal enableextensions disabledelayedexpansion
echo.
echo No existing installation detected. Downloading modpack.
timeout 30
:: Requiring user input for game path
:: Download MO2
curl -L -o MO2.7z https://github.com/ModOrganizer2/modorganizer/releases/download/v2.5.2/Mod.Organizer-2.5.2.7z
if %errorlevel% neq 0 (
echo ERROR: Failed to download the archive. Check your internet connection and try again.
pause
exit /b
)
:: Confirm the file exists
if not exist "MO2.7z" (
echo ERROR: Download completed, but the file MO2.7z was not found.
echo Please check your internet connection or the download URL.
pause
exit /b
)
:: Extracting MO2 and installing
.\7zr x MO2.7z
if %errorlevel% neq 0 (
echo ERROR: Failed to extract the archive. Ensure the archive is valid and try again.
pause
exit /b
)
:: Deleting the archive
del MO2.7z
echo ----
echo Cloning repository...
"%portable_git%" clone https://files.moddinglounge.com/Rage/Fika-Tarkov.git
echo ----
echo Synchronizing mods folder...
robocopy "%repository%/mods" "%mo2_install%/mods" /MIR
echo ----
echo Synchronizing profiles folder...
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
echo ----
echo Installation complete. Launch ModOrganizer.exe and follow the remaining instructions.
pause
exit /B 0