47 lines
1.8 KiB
Bash
Executable File
47 lines
1.8 KiB
Bash
Executable File
#!/bin/bash
|
|
# File: scripts/gen-proto.sh
|
|
set -xe
|
|
|
|
# Find protoc-gen-go
|
|
PROTOC_GEN_GO_PATH=""
|
|
if command -v protoc-gen-go &> /dev/null; then
|
|
PROTOC_GEN_GO_PATH=$(command -v protoc-gen-go)
|
|
elif [ -f "$(go env GOBIN)/protoc-gen-go" ]; then
|
|
PROTOC_GEN_GO_PATH="$(go env GOBIN)/protoc-gen-go"
|
|
elif [ -f "$(go env GOPATH)/bin/protoc-gen-go" ]; then
|
|
PROTOC_GEN_GO_PATH="$(go env GOPATH)/bin/protoc-gen-go"
|
|
else
|
|
echo "protoc-gen-go not found. Please run:"
|
|
echo "go install google.golang.org/protobuf/cmd/protoc-gen-go"
|
|
echo "And ensure GOBIN or GOPATH/bin is in your PATH."
|
|
exit 1
|
|
fi
|
|
|
|
# Project root assumed to be parent of 'scripts' directory
|
|
PROJECT_ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )"
|
|
API_DIR="${PROJECT_ROOT}/api/v1alpha1"
|
|
# Output generated code directly into the api/v1alpha1 directory, alongside kat.proto
|
|
# This is a common pattern and simplifies imports.
|
|
# The go_package option in kat.proto already points here.
|
|
OUT_DIR="${API_DIR}"
|
|
|
|
# Ensure output directory exists (it should, it's the same as API_DIR)
|
|
mkdir -p "$OUT_DIR"
|
|
|
|
echo "Generating Go code from Protobuf definitions..."
|
|
protoc --proto_path="${API_DIR}" \
|
|
--plugin="protoc-gen-go=${PROTOC_GEN_GO_PATH}" \
|
|
--go_out="${OUT_DIR}" --go_opt=paths=source_relative \
|
|
"${API_DIR}/kat.proto"
|
|
|
|
echo "Protobuf Go code generated in ${OUT_DIR}"
|
|
|
|
# Optional: Generate gRPC stubs if/when you add services
|
|
# PROTOC_GEN_GO_GRPC_PATH="" # Similar logic to find protoc-gen-go-grpc
|
|
# go install google.golang.org/grpc/cmd/protoc-gen-go-grpc
|
|
# protoc --proto_path="${API_DIR}" \
|
|
# --plugin="protoc-gen-go=${PROTOC_GEN_GO_PATH}" \
|
|
# --plugin="protoc-gen-go-grpc=${PROTOC_GEN_GO_GRPC_PATH}" \
|
|
# --go_out="${OUT_DIR}" --go_opt=paths=source_relative \
|
|
# --go-grpc_out="${OUT_DIR}" --go-grpc_opt=paths=source_relative \
|
|
# "${API_DIR}/kat.proto" |