2026-07-16 14:33:43 +08:00
#!/usr/bin/env bash
# 标准启动与验证入口(Unix shell 版),与 init.ps1 等价,二选一:
2026-07-16 15:28:13 +08:00
# - WSL / Git Bash / macOS / Linux:用 ./init.sh
2026-07-16 14:33:43 +08:00
# - Windows 原生 PowerShell:用 ./init.ps1
# 一条命令完成:依赖安装 -> 基础验证 -> 打印启动命令。
2026-07-16 15:28:13 +08:00
# 三个命令是仓库统一入口;换工具链时同步更新文档与这里。
2026-07-16 14:33:43 +08:00
set -euo pipefail
ROOT_DIR = " $( cd " $( dirname " ${ BASH_SOURCE [0] } " ) " && pwd ) "
cd " $ROOT_DIR "
2026-07-16 21:27:52 +08:00
INSTALL_CMD = "GOTOOLCHAIN=go1.25.0 GOWORK=\" $ROOT_DIR /go.work\" go work sync && GOTOOLCHAIN=go1.25.0 GOWORK=\" $ROOT_DIR /app-win7/go.work\" go work sync"
2026-07-16 15:51:34 +08:00
VERIFY_CMD = "bash scripts/verify_phase0.sh"
2026-07-16 21:27:52 +08:00
START_CMD = "GOTOOLCHAIN=go1.25.0 GOWORK=\" $ROOT_DIR /go.work\" CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go -C app-modern build -trimpath -ldflags=-H=windowsgui -o ../dist/SoftBox.exe ./cmd/softbox && GOTOOLCHAIN=go1.20.14 GOWORK=\" $ROOT_DIR /app-win7/go.work\" CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go -C app-win7 build -trimpath -ldflags=-H=windowsgui -o ../dist/SoftBox-win7.exe ./cmd/softbox"
2026-07-16 14:33:43 +08:00
echo "==> 当前目录: $PWD "
echo "==> 同步依赖"
2026-07-16 15:28:13 +08:00
eval " $INSTALL_CMD "
2026-07-16 14:33:43 +08:00
echo "==> 运行基础验证"
2026-07-16 15:28:13 +08:00
eval " $VERIFY_CMD "
2026-07-16 14:33:43 +08:00
echo "==> 启动命令"
2026-07-16 15:28:13 +08:00
printf ' %s\n' " $START_CMD "
2026-07-16 14:33:43 +08:00
if [ " ${ RUN_START_COMMAND :- 0 } " = "1" ] ; then
echo "==> 启动应用"
2026-07-16 15:28:13 +08:00
eval " $START_CMD "
exit $?
2026-07-16 14:33:43 +08:00
fi
echo "如果希望 init.sh 直接启动应用,请设置 RUN_START_COMMAND=1。"
echo "如果基础验证失败,先修复基线状态,不要在坏的起点上继续叠新功能。"