@echo off chcp 65001 >nul REM Build Windows artifacts on the build machine (Meowhome). REM Output: REM dist\scoreboard.exe server (frontend embedded via go:embed) REM dist\console\ Scoreboard Console installer + portable dir REM REM IMPORTANT: keep this file ASCII-only. cmd.exe mis-parses UTF-8 non-ASCII text REM inside batch files (especially inside if(...) blocks). Anything that needs a REM non-ASCII path is done by a Node script under deploy\. setlocal REM electron / electron-builder downloads: use mirrors so GitHub is reachable set "ELECTRON_MIRROR=https://npmmirror.com/mirrors/electron/" set "ELECTRON_BUILDER_BINARIES_MIRROR=https://gh-proxy.com/https://github.com/electron-userland/electron-builder-binaries/releases/download/" set "CSC_IDENTITY_AUTO_DISCOVERY=false" cd /d "%~dp0.." echo === [1/4] git pull === git pull || exit /b 1 echo === [2/4] web deps + build === cd web call pnpm install --frozen-lockfile || exit /b 1 call pnpm build || exit /b 1 cd .. echo === [3/4] server build === cd server if not exist ..\dist mkdir ..\dist REM internal signature is injected from a machine-local file (gitignored, never in repo) set "INTERNAL_SIGNATURE=" if exist "..\deploy\signature.local.txt" set /p INTERNAL_SIGNATURE=<"..\deploy\signature.local.txt" if defined INTERNAL_SIGNATURE ( REM single quotes keep spaces inside the value intact for go's ldflags parser go build -ldflags "-X 'git.yeij.top/AskaEth/Scoreboard/server/internal/version.InternalSignature=%INTERNAL_SIGNATURE%'" -o ..\dist\scoreboard.exe . || exit /b 1 echo internal signature injected ) else ( go build -o ..\dist\scoreboard.exe . || exit /b 1 echo no internal signature ) cd .. echo === [4/4] console package (electron-builder) === REM win.icon is written into the PE resources by electron-builder (via rcedit); REM it needs winCodeSign / nsis, fetched through the gh proxy above. taskkill /im "Scoreboard Console.exe" /f >nul 2>&1 taskkill /im scoreboard.exe /f >nul 2>&1 if not exist "rules" echo [warn] rules dir missing node deploy\prepare-extra.mjs || exit /b 1 cd console call pnpm install --frozen-lockfile || exit /b 1 call pnpm run dist || exit /b 1 cd .. echo. echo === BUILD OK === echo dist\scoreboard.exe server echo dist\console\ console installer + portable dir dir /b dist\console endlocal exit /b 0