2026-08-27 10:09:54 +08:00
|
|
|
@echo off
|
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
|
|
|
|
|
|
chcp 65001 >nul
|
|
|
|
|
|
2026-08-27 10:56:41 +08:00
|
|
|
set "EXE_NAME=back_cover"
|
2026-08-27 10:09:54 +08:00
|
|
|
set "OUTPUT_DIR=.\bin"
|
|
|
|
|
set "GOOS=windows"
|
|
|
|
|
set "GOARCH=amd64"
|
|
|
|
|
set "VERSION=dev"
|
|
|
|
|
|
|
|
|
|
for /f "tokens=*" %%a in ('git rev-parse --short HEAD 2^>nul') do set "COMMIT=%%a"
|
|
|
|
|
if not defined COMMIT set "COMMIT=unknown"
|
|
|
|
|
|
|
|
|
|
for /f "tokens=*" %%a in ('powershell -Command "Get-Date -Format 'yyyy-MM-dd_HH:mm:ss'"') do set "BUILD_TIME=%%a"
|
|
|
|
|
|
|
|
|
|
set "LDFLAGS=-s -w -H=windowsgui -X main.Version=%VERSION% -X main.Commit=%COMMIT% -X main.BuildTime=%BUILD_TIME%"
|
|
|
|
|
set "BUILD_FLAGS=-trimpath"
|
|
|
|
|
|
2026-08-27 10:56:41 +08:00
|
|
|
echo Cleaning up...
|
2026-08-27 10:09:54 +08:00
|
|
|
if exist "%OUTPUT_DIR%" rmdir /s /q "%OUTPUT_DIR%"
|
|
|
|
|
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
|
|
|
|
|
|
2026-08-27 10:56:41 +08:00
|
|
|
echo Generating version info for Windows...
|
|
|
|
|
go install github.com/josephspurrier/goversioninfo/cmd/goversioninfo@latest
|
|
|
|
|
goversioninfo -icon=app.ico -manifest=app.manifest -64 -o=app.syso
|
|
|
|
|
|
|
|
|
|
echo Building %EXE_NAME% for %GOOS%/%GOARCH% ...
|
2026-08-27 10:09:54 +08:00
|
|
|
set "CGO_ENABLED=0"
|
|
|
|
|
go build %BUILD_FLAGS% -ldflags "%LDFLAGS%" -o "%OUTPUT_DIR%\%EXE_NAME%.exe" .
|
|
|
|
|
if errorlevel 1 (
|
2026-08-27 10:56:41 +08:00
|
|
|
echo Build failed
|
2026-08-27 10:09:54 +08:00
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
2026-08-27 10:56:41 +08:00
|
|
|
echo Copying config files...
|
|
|
|
|
xcopy ".\etc" "%OUTPUT_DIR%\etc" /I/Y >nul 2>&1
|
2026-08-27 10:09:54 +08:00
|
|
|
if errorlevel 1 (
|
|
|
|
|
echo Copy config files failed
|
|
|
|
|
exit /b 1
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
echo Build completed: %OUTPUT_DIR%\%EXE_NAME%.exe
|
2026-08-27 10:56:41 +08:00
|
|
|
|
2026-08-27 10:09:54 +08:00
|
|
|
endlocal
|