#!/usr/bin/env bash # 构建 mfd-monitor-agent 单二进制产物。 # # 环境变量: # OUT_DIR 输出目录,默认 <仓库根>/dist # VERSION 写入二进制的版本号,默认 0.1.0(通过 -ldflags -X main.version) # GOOS_TARGET 目标 GOOS,默认 linux # GOARCH_TARGET 目标 GOARCH,默认 amd64 # OUTPUT_NAME 输出文件名,默认 agent-- # CGO_ENABLED 是否启用 CGO,默认 0(静态链接友好) # # 交叉编译 Windows 示例: # GOOS_TARGET=windows GOARCH_TARGET=amd64 OUTPUT_NAME=agent-windows-amd64.exe ./scripts/build-linux.sh # set -euo pipefail ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" OUT_DIR="${OUT_DIR:-${ROOT_DIR}/dist}" VERSION="${VERSION:-0.1.0}" GOOS_TARGET="${GOOS_TARGET:-linux}" GOARCH_TARGET="${GOARCH_TARGET:-amd64}" OUTPUT_NAME="${OUTPUT_NAME:-agent-${GOOS_TARGET}-${GOARCH_TARGET}}" mkdir -p "${OUT_DIR}" CGO_ENABLED="${CGO_ENABLED:-0}" \ GOOS="${GOOS_TARGET}" \ GOARCH="${GOARCH_TARGET}" \ go build \ -trimpath \ -ldflags "-s -w -X main.version=${VERSION}" \ -o "${OUT_DIR}/${OUTPUT_NAME}" \ ./cmd/agent printf 'built %s\n' "${OUT_DIR}/${OUTPUT_NAME}"