Files
server_manager/scripts/package/pack_all.bat
T
2026-05-22 00:16:08 +08:00

73 lines
2.1 KiB
Batchfile

@echo off
chcp 65001 >nul
setlocal
title Server Manager - pack all to build\output
:: 发版前请先打本地测试包验证: scripts\package\pack_local_test.bat 或 python scripts/package/pack_local_test.py
for %%I in ("%~dp0..\..") do set "ROOT=%%~fI"
set "ISCC=C:\Program Files (x86)\Inno Setup 6\ISCC.exe"
set "OUTPUT_DIR=%ROOT%\build\output"
echo(============================================================
echo( Server Manager - 一键打包
echo( EXE + Inno Setup 安装包
echo(============================================================
echo(
:: Step 1: PyInstaller 打包 main.exe(在 src 目录执行)
echo([Step 1/2] PyInstaller 打包 main.exe ...
echo(
call "%ROOT%\scripts\package\build.bat" nopause
if errorlevel 1 (
echo(
echo([失败] PyInstaller 打包未成功
pause
exit /b 1
)
echo(
:: Step 2: Inno Setup 编译安装包
echo([Step 2/2] Inno Setup 编译安装包 ...
echo(
if not exist "%ISCC%" goto :missing_iscc
"%ISCC%" "%ROOT%\scripts\package\build_installer.iss"
if errorlevel 1 goto :iscc_failed
:: 将正式产物放在 build\output
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"
copy /y "%ROOT%\resources\version.json" "%OUTPUT_DIR%\version.json" >nul
if not exist "%OUTPUT_DIR%\patches" mkdir "%OUTPUT_DIR%\patches"
echo( 已复制: version.json -> build\output\version.json
echo( 增量包目录: build\output\patches\
echo(
echo([清理] 删除打包中间产物 ...
python "%ROOT%\scripts\package\clean_artifacts.py"
echo(
echo(============================================================
echo(一键打包完成!
echo( 新发布目录:
echo( - build\output\ServerManager_Setup.exe 完整安装包
echo( - build\output\version.json 版本与更新配置
echo( - build\output\patches\*.patch 增量补丁(可选)
echo(============================================================
echo(
pause
exit /b 0
:missing_iscc
echo([错误] 未找到 Inno Setup 编译器: %ISCC%
echo( 请安装 Inno Setup 6 或修改本脚本中的 ISCC 路径
pause
exit /b 1
:iscc_failed
echo(
echo([失败] Inno Setup 编译未成功
pause
exit /b 1