#!/bin/bash
set -e  # 出错立即退出，便于定位问题

# ========== 核心配置（根据你的项目修改） ==========
# 1. 必须和go.mod中的module名称一致（关键！）
MODULE_NAME="sunhpc"
# 2. 编译的入口文件路径（你的main.go在cmd/sunhpc下）
ENTRY_FILE="./cmd/sunhpc/main.go"
# 3. 输出的可执行文件名称
APP_NAME="sunhpc"
# 4. 自定义版本号
APP_VERSION="v1.0.0"

# ========== 获取Git和编译信息（兼容无Git环境） ==========
GIT_COMMIT=$(git rev-parse --short HEAD 2>/dev/null || echo "unknown")
GIT_BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null || echo "unknown")
BUILD_TIME=$(date +"%Y-%m-%d-%H:%M:%S")

# ========== 编译（核心修复：ldflags格式） ==========
# 关键：去掉反斜杠，用单层双引号包裹，内部换行分隔参数
go build -ldflags "
-X ${MODULE_NAME}/pkg/info.Version=${APP_VERSION}
-X ${MODULE_NAME}/pkg/info.BuildTime=${BUILD_TIME}
-X ${MODULE_NAME}/pkg/info.GitCommit=${GIT_COMMIT}
-X ${MODULE_NAME}/pkg/info.GitBranch=${GIT_BRANCH}
" -o ${APP_NAME} ${ENTRY_FILE}

# ========== 验证提示 ==========
echo "- 执行文件：./${APP_NAME}"
echo "- 版本信息：${APP_VERSION} (Git: ${GIT_COMMIT} @ ${GIT_BRANCH})"
echo "- 编译时间：${BUILD_TIME}"
