#!/usr/bin/env bash set -euo pipefail root_dir="$(cd -- "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" config="$root_dir/go/config.yaml" spec="${STELLA_OAS_FILE:-}" if [ -z "$spec" ]; then echo "STELLA_OAS_FILE is required (path to OpenAPI spec)" >&2 exit 1 fi output_dir="${STELLA_SDK_OUT:-$root_dir/out/go}" mkdir -p "$output_dir" # Ensure postprocess copies shared helpers into the generated tree export STELLA_POSTPROCESS_ROOT="$output_dir" export STELLA_POSTPROCESS_LANG="go" JAR="${STELLA_OPENAPI_GENERATOR_JAR:-$root_dir/tools/openapi-generator-cli-7.4.0.jar}" if [ ! -f "$JAR" ]; then echo "OpenAPI Generator CLI jar not found at $JAR" >&2 echo "Set STELLA_OPENAPI_GENERATOR_JAR or download to tools/." >&2 exit 1 fi JAVA_OPTS="${JAVA_OPTS:-} -Dorg.openapitools.codegen.utils.postProcessFile=$root_dir/postprocess/postprocess.sh" export JAVA_OPTS java -jar "$JAR" generate \ -i "$spec" \ -g go \ -c "$config" \ --skip-validate-spec \ --enable-post-process-file \ --global-property models,apis,supportingFiles \ -o "$output_dir" # Ensure shared helpers are present even if upstream post-process hooks were skipped for some files if [ -d "$output_dir" ]; then "$root_dir/postprocess/postprocess.sh" "$output_dir/client.go" 2>/dev/null || true fi echo "Go SDK generated at $output_dir"