- 19 个接口全部实测验收通过 (2026-08-08) - 结构: main.go + core/consts + gsysctl + gtuner + server - 含 build_go.sh 官方部署结构构建脚本 (amd64/arm64 交叉编译) - 数据无缝衔接 Python 版遗留 (快照/state/审计日志) - 备份自 156:/root/goddhv (2026-08-09)
81 lines
2.0 KiB
Bash
Executable File
81 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
# GMSSH「系统调优」Go 版后端构建脚本
|
|
# 产出官方标准结构: dist/app/bin/{main, config.json, i18n/}
|
|
set -euo pipefail
|
|
|
|
export PATH=$PATH:/usr/local/go/bin
|
|
export GOPROXY=https://goproxy.cn,direct
|
|
|
|
CURDIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
cd "$CURDIR"
|
|
|
|
# 架构: 默认 amd64, 可用 ARCH=arm64 交叉编译
|
|
ARCH="${ARCH:-amd64}"
|
|
DIST_BIN="$CURDIR/dist/app/bin"
|
|
|
|
echo "🚀 开始构建 Go 版后端 (arch=$ARCH)..."
|
|
|
|
# 1. 编译 main
|
|
echo "⚙️ 编译 main.go (GOOS=linux GOARCH=$ARCH)..."
|
|
GOOS=linux GOARCH="$ARCH" CGO_ENABLED=0 go build -trimpath -ldflags="-s -w" -o "$DIST_BIN/main" .
|
|
if [ ! -f "$DIST_BIN/main" ]; then
|
|
echo "❌ 编译失败, 未找到产物"
|
|
exit 1
|
|
fi
|
|
echo "✅ 编译完成: $DIST_BIN/main ($(stat -c%s "$DIST_BIN/main") bytes)"
|
|
|
|
# 2. 生成 config.json (官方格式, socket=app.sock)
|
|
echo "📝 生成 config.json..."
|
|
mkdir -p "$DIST_BIN"
|
|
cat > "$DIST_BIN/config.json" <<'JSONEOF'
|
|
{
|
|
"test": {
|
|
"jsonrpc": {
|
|
"sockets": "app.sock"
|
|
},
|
|
"logger": {
|
|
"path": "logs/",
|
|
"file": "{Y-m-d}.log",
|
|
"level": "info",
|
|
"stdout": true,
|
|
"rotateBackupLimit": 7,
|
|
"rotateExpire": "1d"
|
|
}
|
|
},
|
|
"prod": {
|
|
"jsonrpc": {
|
|
"sockets": "app.sock"
|
|
},
|
|
"logger": {
|
|
"path": "../../logs/",
|
|
"file": "{Y-m-d}.log",
|
|
"level": "error",
|
|
"stdout": false,
|
|
"rotateBackupLimit": 30,
|
|
"rotateExpire": "30d"
|
|
}
|
|
}
|
|
}
|
|
JSONEOF
|
|
echo "✅ config.json 已生成"
|
|
|
|
# 3. 生成 i18n (基础国际化文件)
|
|
echo "📝 生成 i18n..."
|
|
mkdir -p "$DIST_BIN/i18n"
|
|
cat > "$DIST_BIN/i18n/zh-CN.ini" <<'INIIEOF'
|
|
REQUIRE_VALIDATION_TM="该参数不能为空"
|
|
STATUS_OK="操作成功"
|
|
INIIEOF
|
|
cat > "$DIST_BIN/i18n/en.ini" <<'INIIEOF'
|
|
REQUIRE_VALIDATION_TM="This parameter cannot be empty"
|
|
STATUS_OK=" Operation successful"
|
|
INIIEOF
|
|
echo "✅ i18n 已生成"
|
|
|
|
# 4. 赋权
|
|
chmod +x "$DIST_BIN/main"
|
|
|
|
echo ""
|
|
echo "✅ 构建完成! 产物结构:"
|
|
find "$CURDIR/dist/app/bin" -type f | sed "s|$CURDIR/||"
|