Graduately/maturita-installer-windows.cmd
github-actions[bot] 599d054526 Build from 235436dab0
2026-10-11 17:40:36 +00:00

82 lines
2.5 KiB
Batchfile

@echo off
rem Graduately installer for Windows.
rem
rem Carries no application of its own. Fastly caches branch-named URLs on
rem raw.githubusercontent.com, so this script looks up the tip of `builds`
rem and downloads that commit — not a stale zip from the last five minutes.
rem
rem Double-click the file to run it. The app updates itself from then on.
setlocal EnableDelayedExpansion
set "REPO=pepaskopec-blip/Graduately"
set "BRANCH=builds"
set "ASSET=maturita-windows-x64.zip"
set "DEST=%LOCALAPPDATA%\Programs\Graduately"
echo Installing Graduately
echo ---------------------
where curl >nul 2>&1 || goto :no_tools
where tar >nul 2>&1 || goto :no_tools
set "TMP_DIR=%TEMP%\maturita-installer"
rmdir /s /q "%TMP_DIR%" 2>nul
mkdir "%TMP_DIR%" || goto :fail_tmp
echo Looking up the latest build...
set "SHA="
for /f "usebackq delims=" %%S in (`powershell -NoProfile -ExecutionPolicy Bypass -Command "$r = & curl.exe -fsSL --max-time 20 'https://github.com/%REPO%/commits/%BRANCH%.atom'; if ($r -match 'Commit/([0-9a-f]{40})') { $Matches[1] }"`) do set "SHA=%%S"
if not defined SHA goto :fail_download
set "URL=https://raw.githubusercontent.com/%REPO%/%SHA%/%ASSET%"
echo Downloading build %SHA:~0,7%...
curl -fL --progress-bar --max-time 1800 -o "%TMP_DIR%\%ASSET%" "%URL%" || goto :fail_download
echo Installing to %DEST%
if not exist "%DEST%" mkdir "%DEST%" || goto :fail_dest
tar -xf "%TMP_DIR%\%ASSET%" -C "%DEST%" || goto :fail_extract
set "LNK=%APPDATA%\Microsoft\Windows\Start Menu\Programs\Graduately.lnk"
powershell -NoProfile -ExecutionPolicy Bypass -Command ^
"$s=(New-Object -ComObject WScript.Shell).CreateShortcut('%LNK%');" ^
"$s.TargetPath='%DEST%\maturita.exe';$s.WorkingDirectory='%DEST%';$s.Save()" >nul 2>&1
rmdir /s /q "%TMP_DIR%" 2>nul
echo.
echo Done. Starting the app...
start "" "%DEST%\maturita.exe"
exit /b 0
:no_tools
echo.
echo Error: this installer needs curl and tar, which come with Windows 10
echo version 1803 and later. Please update Windows, or download the zip
echo manually from https://github.com/%REPO%/tree/%BRANCH%
pause
exit /b 1
:fail_tmp
echo.
echo Error: could not create a temporary folder in %TEMP%.
pause
exit /b 1
:fail_download
echo.
echo Error: the download failed. Check your internet connection.
pause
exit /b 1
:fail_dest
echo.
echo Error: could not create %DEST%.
pause
exit /b 1
:fail_extract
echo.
echo Error: the archive could not be unpacked.
pause
exit /b 1