diff --git a/installer - Kopya.bat b/installer - Kopya.bat new file mode 100644 index 0000000..50264f7 --- /dev/null +++ b/installer - Kopya.bat @@ -0,0 +1,134 @@ +@echo off +setlocal + +:: --------- Setup Log --------- +set "LOG_FILE=cosmic_setup.log" +echo [%DATE% %TIME%] Starting script... > "%LOG_FILE%" + +:: --------- Admin Check --------- +net session >nul 2>&1 +if %errorlevel% neq 0 ( + echo You must run this script as Administrator! + echo [%DATE% %TIME%] ERROR: Script not run as administrator. >> "%LOG_FILE%" + pause + exit /b +) +echo [%DATE% %TIME%] Admin check passed. >> "%LOG_FILE%" + +:: --------- Define Paths --------- +set "CURRENT_DIR=%~dp0" +if "%CURRENT_DIR:~-1%"=="\" set "CURRENT_DIR=%CURRENT_DIR:~0,-1%" + +set "TARGET_DIR=%USERPROFILE%\Documents\VIP Mud\Cosmic Rage" +set "SET_FILE=%TARGET_DIR%\cosmic rage.set" +set "LOADER_FILE=%TARGET_DIR%\loader.set" +set "SOUNDS_DIR=%CURRENT_DIR%\sounds" +set "REPO_URL=http://nathantech.net:3000/CosmicRage/CosmicRageSounds" +set "REPO_SUBFOLDER=wav" +set "GIT_PORTABLE=%CURRENT_DIR%\gitportable\bin\git.exe" + +echo [%DATE% %TIME%] Script location: %CURRENT_DIR% >> "%LOG_FILE%" +echo [%DATE% %TIME%] Target directory: %TARGET_DIR% >> "%LOG_FILE%" +echo [%DATE% %TIME%] Sounds directory: %SOUNDS_DIR% >> "%LOG_FILE%" + +:: --------- Check GitPortable Exists --------- +if not exist "%GIT_PORTABLE%" ( + echo [%DATE% %TIME%] ERROR: GitPortable not found at %GIT_PORTABLE% >> "%LOG_FILE%" + echo ERROR: GitPortable not found at %GIT_PORTABLE% + pause + exit /b +) + +:: --------- Handle Existing Cosmic Rage Folder --------- +if exist "%TARGET_DIR%" ( + echo The target folder already exists: "%TARGET_DIR%" + echo Would you like to delete and recreate it? (Y/N) + set "userchoice=" + set /p userchoice=Your choice: + if /i "%userchoice%"=="Y" ( + echo [%DATE% %TIME%] Deleting existing folder... >> "%LOG_FILE%" + rd /s /q "%TARGET_DIR%" + if exist "%TARGET_DIR%" ( + echo [%DATE% %TIME%] ERROR: Could not delete folder. >> "%LOG_FILE%" + echo ERROR: Could not delete folder. Files might be in use. + pause + exit /b + ) + echo Creating fresh folder... + mkdir "%TARGET_DIR%" + ) else ( + echo [%DATE% %TIME%] Keeping existing folder. >> "%LOG_FILE%" + echo Continuing with existing folder... + ) +) else ( + echo [%DATE% %TIME%] Folder does not exist. Creating new one. >> "%LOG_FILE%" + mkdir "%TARGET_DIR%" +) + +if not exist "%TARGET_DIR%" ( + echo [%DATE% %TIME%] ERROR: Failed to create folder. >> "%LOG_FILE%" + echo ERROR: Could not create folder. Check permissions or path. + pause + exit /b +) +echo [%DATE% %TIME%] Folder is ready. >> "%LOG_FILE%" + +:: --------- Download sounds using partial clone + sparse checkout --------- +echo [%DATE% %TIME%] Downloading sound files using Git sparse clone... >> "%LOG_FILE%" +rd /s /q "%SOUNDS_DIR%" >nul 2>&1 + +"%GIT_PORTABLE%" clone --depth=1 --filter=blob:none --sparse "%REPO_URL%" "%SOUNDS_DIR%" >> "%LOG_FILE%" 2>&1 +if errorlevel 1 ( + echo [%DATE% %TIME%] ERROR: Git clone failed. >> "%LOG_FILE%" + echo ERROR: Failed to clone repo. Check network or GitPortable version. + pause + exit /b +) + +pushd "%SOUNDS_DIR%" +"%GIT_PORTABLE%" sparse-checkout set "%REPO_SUBFOLDER%" >> "%LOG_FILE%" 2>&1 +if not exist "%SOUNDS_DIR%\%REPO_SUBFOLDER%" ( + echo [%DATE% %TIME%] ERROR: Failed to checkout sparse folder. >> "%LOG_FILE%" + echo ERROR: Could not pull sparse folder. Check folder name or repo. + pause + popd + exit /b +) +popd +echo [%DATE% %TIME%] Sounds successfully cloned. >> "%LOG_FILE%" + +:: --------- Create cosmic rage.set --------- +if not exist "%SET_FILE%" ( + echo [%DATE% %TIME%] Creating cosmic rage.set >> "%LOG_FILE%" + ( + echo #Load ^{%%CharInfo^(MudName^)/loader.set^} + echo #If ^{%%Defined^(scpath^)=1 and %%Defined^(sppath^)=1^} ^{ #Load @scpath/Main.set^} ^{ #Say ^{WARNING! The scripts path and/or the sounds path are not defined. Unable to load the soundpack!^}^} + ) > "%SET_FILE%" + echo Created: cosmic rage.set +) else ( + echo cosmic rage.set already exists. +) + +:: --------- Create loader.set --------- +echo [%DATE% %TIME%] Creating loader.set >> "%LOG_FILE%" +( + echo #Var scpath ^{%CURRENT_DIR%^/scripts} + echo #Var sppath ^{%CURRENT_DIR%^/sounds/%REPO_SUBFOLDER%} +) > "%LOADER_FILE%" +echo Created: loader.set + +:: --------- Copy settings.set --------- +if exist "%CURRENT_DIR%\scripts\settings.set" ( + echo [%DATE% %TIME%] Copying settings.set >> "%LOG_FILE%" + copy "%CURRENT_DIR%\scripts\settings.set" "%TARGET_DIR%\" >nul + echo settings.set copied to target directory. +) else ( + echo [%DATE% %TIME%] WARNING: scripts\settings.set not found. >> "%LOG_FILE%" + echo WARNING: scripts\settings.set not found. +) + +:: --------- Finish --------- +echo [%DATE% %TIME%] Script completed successfully. >> "%LOG_FILE%" +echo Setup complete. Files are in "%TARGET_DIR%". +pause +exit /b