# Script to build the edge client for different platforms

# 设置Go环境变量
$env:CGO_ENABLED = 0

# 设置输出路径
$outputPath = ".\bin"
if (-not (Test-Path -Path $outputPath)) {
    New-Item -ItemType Directory -Path $outputPath
}

# 显示构建信息
Write-Host "开始构建 edge 客户端..." -ForegroundColor Green

# 构建 Windows AMD64 版本
Write-Host "正在构建 Windows AMD64 版本..." -ForegroundColor Cyan
$env:GOOS = "windows"
$env:GOARCH = "amd64"
go build -ldflags="-w -s" -o "$outputPath\proxy_edge_win_amd64.exe" .\cmd\edge\main.go
if ($LASTEXITCODE -eq 0) {
    Write-Host "Windows AMD64 版本构建成功！" -ForegroundColor Green
} else {
    Write-Host "Windows AMD64 版本构建失败！" -ForegroundColor Red
    exit 1
}

# 构建 Linux AMD64 版本
Write-Host "正在构建 Linux AMD64 版本..." -ForegroundColor Cyan
$env:GOOS = "linux"
$env:GOARCH = "amd64"
go build -ldflags="-w -s" -o "$outputPath\proxy_edge_linux_amd64" .\cmd\edge\main.go
if ($LASTEXITCODE -eq 0) {
    Write-Host "Linux AMD64 版本构建成功！" -ForegroundColor Green
} else {
    Write-Host "Linux AMD64 版本构建失败！" -ForegroundColor Red
    exit 1
}

# 构建 Linux ARM64 版本
Write-Host "正在构建 Linux ARM64 版本..." -ForegroundColor Cyan
$env:GOOS = "linux"
$env:GOARCH = "arm64"
go build -ldflags="-w -s" -o "$outputPath\proxy_edge_linux_arm64" .\cmd\edge\main.go
if ($LASTEXITCODE -eq 0) {
    Write-Host "Linux ARM64 版本构建成功！" -ForegroundColor Green
} else {
    Write-Host "Linux ARM64 版本构建失败！" -ForegroundColor Red
    exit 1
}

# 构建完成
Write-Host "所有平台版本构建完成！" -ForegroundColor Green
Write-Host "可执行文件位于: $outputPath" -ForegroundColor Yellow

# 显示构建结果
Get-ChildItem -Path $outputPath | Where-Object { $_.Name -like "proxy_edge_*" } | Format-Table Name, Length, LastWriteTime