Files
goaiapi/scripts/genproto.ps1
2026-06-03 14:09:58 +08:00

27 lines
1.2 KiB
PowerShell

# Proto codegen script.
# Canonical .proto lives at repo-root proto/ (language-neutral contract).
# Generated Go code (*.pb.go / *_grpc.pb.go) is written into src/go/proto/ and
# committed to git, so cloning + `go build` works without protoc.
# Only re-run this when the .proto contract changes.
$ErrorActionPreference = 'Stop'
$root = Split-Path $PSScriptRoot -Parent # repo root
$protoc = 'D:\RJ\Tool\Anaconda3\Library\bin\protoc.exe'
$gopath = 'C:\Users\Administrator\go'
# protoc needs protoc-gen-go / protoc-gen-go-grpc (in GOPATH\bin) on PATH
$env:GOPATH = $gopath
$env:PATH = "$gopath\bin;$env:PATH"
$protoRoot = Join-Path $root 'proto' # proto import root
$goOut = Join-Path $root 'src\go\proto' # Go output root (module-relative proto/)
New-Item -ItemType Directory -Force $goOut | Out-Null
& $protoc "--proto_path=$protoRoot" `
"--go_out=$goOut" --go_opt=paths=source_relative `
"--go-grpc_out=$goOut" --go-grpc_opt=paths=source_relative `
contract/v1/contract.proto
if ($LASTEXITCODE -ne 0) { throw "protoc failed (exit $LASTEXITCODE)" }
Write-Host "Proto generated: src/go/proto/contract/v1/*.pb.go (from proto/contract/v1/contract.proto)"