119 lines
2.6 KiB
Batchfile
119 lines
2.6 KiB
Batchfile
@echo off
|
||
chcp 65001 >nul
|
||
title zhub 构建脚本
|
||
|
||
rem 获取当前日期和时间并格式化为 YYYY.MM.DD-HH.MM.SS
|
||
for /f "tokens=2 delims==" %%i in ('wmic os get localdatetime /value') do set datetime=%%i
|
||
set year=%datetime:~0,4%
|
||
set month=%datetime:~4,2%
|
||
set day=%datetime:~6,2%
|
||
set hour=%datetime:~8,2%
|
||
set minute=%datetime:~10,2%
|
||
set second=%datetime:~12,2%
|
||
set version=%year%.%month%.%day%-%hour%.%minute%.%second%
|
||
|
||
rem 输出当前版本号
|
||
echo 当前构建版本号:%version%
|
||
|
||
rem 删除旧文件
|
||
echo 删除历史构建文件...
|
||
del /q zhub zhub.sh zhub.exe >nul 2>nul
|
||
|
||
rem 交互式平台选择
|
||
echo ==============================
|
||
echo 请选择要构建的平台:
|
||
echo ==============================
|
||
echo 1. Linux (amd64)
|
||
echo 2. Linux (arm64)
|
||
echo 3. Windows (amd64)
|
||
echo 4. MacOS (amd64)
|
||
echo 5. 全部构建
|
||
echo 0. 退出
|
||
echo ==============================
|
||
set /p choice=请输入选项编号(可多选,例如 135):
|
||
|
||
if "%choice%"=="0" goto end
|
||
|
||
if not "%choice%"=="" (
|
||
echo 开始构建版本 %version%...
|
||
)
|
||
|
||
if "%choice%"=="1" (
|
||
call :build_linux
|
||
)
|
||
if "%choice%"=="2" (
|
||
call :build_linux_arm
|
||
)
|
||
if "%choice%"=="3" (
|
||
call :build_windows
|
||
)
|
||
if "%choice%"=="4" (
|
||
call :build_mac
|
||
)
|
||
if "%choice%"=="5" (
|
||
call :build_linux
|
||
call :build_linux_arm
|
||
call :build_windows
|
||
call :build_mac
|
||
)
|
||
|
||
goto end
|
||
|
||
rem ========= 构建平台函数 ==========
|
||
|
||
:build_linux
|
||
echo [Linux amd64] 开始构建...
|
||
set GOOS=linux
|
||
set GOARCH=amd64
|
||
go build -o zhub.sh -ldflags "-s -w -X 'zhub/internal/monitor.Version=%version%'"
|
||
upx -9 zhub.sh
|
||
call :move_to_dist zhub.sh linux
|
||
goto :eof
|
||
|
||
:build_linux_arm
|
||
echo [Linux arm64] 开始构建...
|
||
set GOOS=linux
|
||
set GOARCH=arm64
|
||
go build -o zhub.sh -ldflags "-s -w -X 'zhub/internal/monitor.Version=%version%'"
|
||
upx -9 zhub.sh
|
||
call :move_to_dist zhub.sh linux-arm
|
||
goto :eof
|
||
|
||
:build_windows
|
||
echo [Windows amd64] 开始构建...
|
||
set GOOS=windows
|
||
set GOARCH=amd64
|
||
go build -o zhub.exe -ldflags "-s -w -X 'zhub/internal/monitor.Version=%version%'"
|
||
upx -9 zhub.exe
|
||
call :move_to_dist zhub.exe windows
|
||
goto :eof
|
||
|
||
:build_mac
|
||
echo [MacOS amd64] 开始构建...
|
||
set GOOS=darwin
|
||
set GOARCH=amd64
|
||
go build -o zhub -ldflags "-s -w -X 'zhub/internal/monitor.Version=%version%'"
|
||
upx -9 zhub
|
||
call :move_to_dist zhub mac
|
||
goto :eof
|
||
|
||
rem ========= 移动构建文件 ==========
|
||
|
||
:move_to_dist
|
||
setlocal
|
||
set file=%1
|
||
set platform=%2
|
||
set target=dist\%version%\%platform%
|
||
if not exist %target% (
|
||
mkdir %target%
|
||
)
|
||
move /Y %file% %target%\ >nul
|
||
echo 构建产物已移动至:%target%\%file%
|
||
endlocal
|
||
goto :eof
|
||
|
||
:end
|
||
echo 构建流程结束。
|
||
pause
|
||
exit
|