Files
QWQLwToo 079ee4eaeb
build-winui / winui (push) Has been cancelled
Add server components
2026-06-26 13:28:09 +08:00

70 lines
2.0 KiB
Bash

#!/bin/bash
# 编译脚本 - 打包成服务端可执行文件
echo "开始编译 Go 项目..."
# 设置编译参数
APP_NAME="software-download-center"
VERSION=$(date +%Y%m%d_%H%M%S)
BUILD_DIR="build"
OUTPUT_DIR="${BUILD_DIR}/output"
# 创建输出目录
mkdir -p ${OUTPUT_DIR}
# 编译不同平台的可执行文件
echo "编译 Windows 版本..."
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o ${OUTPUT_DIR}/${APP_NAME}_windows_amd64.exe .
echo "编译 Linux 版本..."
GOOS=linux GOARCH=amd64 go build -ldflags="-s -w" -o ${OUTPUT_DIR}/${APP_NAME}_linux_amd64 .
echo "编译 macOS 版本..."
GOOS=darwin GOARCH=amd64 go build -ldflags="-s -w" -o ${OUTPUT_DIR}/${APP_NAME}_darwin_amd64 .
GOOS=darwin GOARCH=arm64 go build -ldflags="-s -w" -o ${OUTPUT_DIR}/${APP_NAME}_darwin_arm64 .
# 复制必要文件
echo "复制必要文件..."
cp -r public ${OUTPUT_DIR}/ 2>/dev/null || true
cp -r views ${OUTPUT_DIR}/ 2>/dev/null || true
cp README.md ${OUTPUT_DIR}/ 2>/dev/null || true
cp ADMIN.md ${OUTPUT_DIR}/ 2>/dev/null || true
# 创建启动脚本
cat > ${OUTPUT_DIR}/start.sh << 'EOF'
#!/bin/bash
# Linux/macOS 启动脚本
PORT=${PORT:-3355}
echo "启动服务器,端口: $PORT"
export PORT=$PORT
./software-download-center_linux_amd64
EOF
cat > ${OUTPUT_DIR}/start.bat << 'EOF'
@echo off
REM Windows 启动脚本
set PORT=3355
if not "%PORT%"=="" set PORT=%PORT%
echo 启动服务器,端口: %PORT%
set PORT=%PORT%
software-download-center_windows_amd64.exe
EOF
chmod +x ${OUTPUT_DIR}/start.sh
chmod +x ${OUTPUT_DIR}/*.exe 2>/dev/null || true
echo ""
echo "编译完成!"
echo "输出目录: ${OUTPUT_DIR}"
echo ""
echo "可执行文件列表:"
ls -lh ${OUTPUT_DIR}/*.exe ${OUTPUT_DIR}/*_linux_amd64 ${OUTPUT_DIR}/*_darwin_* 2>/dev/null | awk '{print $9, "(" $5 ")"}'
echo ""
echo "使用方法:"
echo " Windows: 运行 start.bat 或直接运行 .exe 文件"
echo " Linux: 运行 ./start.sh 或直接运行可执行文件"
echo " macOS: 运行 ./start.sh 或直接运行可执行文件"