@echo off setlocal EnableExtensions EnableDelayedExpansion set "BASE_URL=https://danish-truckers.com/promods-installer/downloads/helper" set "INSTALL_DIR=%LOCALAPPDATA%\ProModsInstallerHelper" set "TEMP_DIR=%TEMP%\ProModsInstallerHelper-Update" set "RELEASE_FILE=%TEMP_DIR%\release.json" set "HELPER_EXE=%INSTALL_DIR%\ProModsInstallerHelper.exe" set "METADATA_FILE=%INSTALL_DIR%\release-metadata.json" set "STARTUP_DIR=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup" set "STARTUP_FILE=%STARTUP_DIR%\Start-ProModsInstallerHelper.bat" set "EXE_URL=%BASE_URL%/ProModsInstallerHelper.exe" set "TMP_EXE=%TEMP_DIR%\ProModsInstallerHelper.exe" echo [1/6] Checking helper release... if exist "%TEMP_DIR%" rmdir /s /q "%TEMP_DIR%" mkdir "%TEMP_DIR%" >nul 2>&1 curl.exe -fsSL "%BASE_URL%/release.json" -o "%RELEASE_FILE%" if errorlevel 1 ( echo Failed to fetch helper release metadata. goto :fail ) set "REMOTE_VERSION=" set "REMOTE_SHA=" for /f "usebackq delims=" %%A in (`powershell -NoProfile -Command "(ConvertFrom-Json -InputObject (Get-Content '%RELEASE_FILE%' -Raw)).version"`) do set "REMOTE_VERSION=%%A" for /f "usebackq delims=" %%A in (`powershell -NoProfile -Command "(ConvertFrom-Json -InputObject (Get-Content '%RELEASE_FILE%' -Raw)).sha256"`) do set "REMOTE_SHA=%%A" if not defined REMOTE_VERSION ( echo Could not parse helper release version. goto :fail ) if not defined REMOTE_SHA ( echo Could not parse helper release checksum. goto :fail ) set "LOCAL_VERSION=" if exist "%METADATA_FILE%" ( for /f "usebackq delims=" %%A in (`powershell -NoProfile -Command "(ConvertFrom-Json -InputObject (Get-Content '%METADATA_FILE%' -Raw)).version"`) do set "LOCAL_VERSION=%%A" ) echo Remote version: !REMOTE_VERSION! echo Local version: !LOCAL_VERSION! if /I "!LOCAL_VERSION!"=="!REMOTE_VERSION!" if exist "%HELPER_EXE%" ( echo Helper is already up to date. goto :start ) echo [2/6] Preparing install folder... mkdir "%INSTALL_DIR%" >nul 2>&1 taskkill /IM ProModsInstallerHelper.exe /F >nul 2>&1 echo [3/6] Downloading helper executable from %EXE_URL% curl.exe -fsSL -o "%TMP_EXE%" "%EXE_URL%" if errorlevel 1 ( echo Failed to download helper executable. goto :fail ) echo [4/6] Verifying checksum... set "DOWNLOADED_SHA=" for /f "usebackq delims=" %%A in (`powershell -NoProfile -Command "(Get-FileHash '%TMP_EXE%' -Algorithm SHA256).Hash.ToLowerInvariant()"`) do set "DOWNLOADED_SHA=%%A" if /I not "!DOWNLOADED_SHA!"=="!REMOTE_SHA!" ( echo Downloaded helper checksum did not match the published release. echo Expected: !REMOTE_SHA! echo Got: !DOWNLOADED_SHA! goto :fail ) echo [5/6] Installing helper... copy /Y "%TMP_EXE%" "%HELPER_EXE%" >nul copy /Y "%RELEASE_FILE%" "%METADATA_FILE%" >nul :start REM Fjern gammel autostart-entry (helperen skal IKKE koere 24/7) if exist "%STARTUP_FILE%" del /Q "%STARTUP_FILE%" >nul 2>&1 REM Drab eventuel kørende helper-proces så den nye version kan starte rent. taskkill /IM ProModsInstallerHelper.exe /F >nul 2>&1 timeout /t 1 /nobreak >nul REM Registrer promods-helper:// URL-protokol saa browseren kan starte helperen on-demand. echo Registering promods-helper:// URL protocol... reg add "HKCU\Software\Classes\promods-helper" /ve /d "URL:ProMods Helper Protocol" /f >nul reg add "HKCU\Software\Classes\promods-helper" /v "URL Protocol" /d "" /f >nul reg add "HKCU\Software\Classes\promods-helper\shell\open\command" /ve /d "powershell.exe -WindowStyle Hidden -NoProfile -Command \"Start-Process '!HELPER_EXE!' '--launch-from-browser'\"" /f >nul echo [6/6] Helper er installeret i "%INSTALL_DIR%". echo Gaa til danish-truckers.com/promods-installer og klik RUN for at starte den. goto :cleanup_success :fail echo Helper installation failed. if exist "%TEMP_DIR%" rmdir /s /q "%TEMP_DIR%" exit /b 1 :cleanup_success if exist "%TEMP_DIR%" rmdir /s /q "%TEMP_DIR%" exit /b 0