#!/bin/bash

# Nomad ARMv7 自动编译脚本
# 适用于 onecloud1 节点

set -e

echo "🚀 开始编译 Nomad ARMv7 版本..."

# 检查系统架构
ARCH=$(uname -m)
echo "📋 当前系统架构: $ARCH"

# 设置Go环境变量
export GOOS=linux
export GOARCH=arm
export GOARM=7
export CGO_ENABLED=0

echo "🔧 设置编译环境:"
echo "   GOOS=$GOOS"
echo "   GOARCH=$GOARCH" 
echo "   GOARM=$GOARM"
echo "   CGO_ENABLED=$CGO_ENABLED"

# 检查Go版本
if ! command -v go &> /dev/null; then
    echo "❌ Go未安装，正在安装..."
    # 安装Go (假设是Ubuntu/Debian系统)
    sudo apt update
    sudo apt install -y golang-go
fi

GO_VERSION=$(go version)
echo "✅ Go版本: $GO_VERSION"

# 创建编译目录
BUILD_DIR="/tmp/nomad-build"
mkdir -p $BUILD_DIR
cd $BUILD_DIR

echo "📥 克隆 Nomad 源码..."
if [ -d "nomad" ]; then
    echo "🔄 更新现有仓库..."
    cd nomad
    git pull
else
    git clone https://github.com/hashicorp/nomad.git
    cd nomad
fi

# 切换到最新稳定版本
echo "🏷️  切换到最新稳定版本..."
git checkout $(git describe --tags --abbrev=0)

# 编译
echo "🔨 开始编译..."
make dev

# 检查编译结果
if [ -f "bin/nomad" ]; then
    echo "✅ 编译成功！"
    
    # 显示文件信息
    file bin/nomad
    ls -lh bin/nomad
    
    # 备份现有Nomad
    if [ -f "/usr/bin/nomad" ]; then
        echo "💾 备份现有Nomad..."
        sudo cp /usr/bin/nomad /usr/bin/nomad.backup.$(date +%Y%m%d-%H%M%S)
    fi
    
    # 安装新版本
    echo "📦 安装新版本..."
    sudo cp bin/nomad /usr/bin/nomad
    sudo chmod +x /usr/bin/nomad
    
    # 验证安装
    echo "🔍 验证安装..."
    /usr/bin/nomad version
    
    echo "🎉 Nomad ARMv7 版本安装完成！"
    
else
    echo "❌ 编译失败！"
    exit 1
fi

# 清理
echo "🧹 清理编译文件..."
cd /
rm -rf $BUILD_DIR

echo "✨ 完成！"
