Files
python-sdk/scripts/generate.sh
T
zeekay 4dfc7cf737 an apostrophe in the message bash parses before it decides not to print it
`${OPENAPI:?…}` only prints its word when the variable is unset, but bash
PARSES that word either way, and inside it a lone `'` opens a quote that never
closes: `unexpected EOF while looking for matching '`, at line 23, with OPENAPI
set and the branch not taken. The regeneration died on a message about how to
supply a value it already had.
2026-08-08 11:54:56 -07:00

28 lines
1.3 KiB
Bash
Executable File

#!/usr/bin/env bash
# Regenerate pkg/hanzoai/cloud/ from the Hanzo Cloud API document.
#
# A CALL SITE, not a generator invocation. The invocation is logic and lives
# once, in `generate.py`; every per-language knob — generator, library, package
# name — is data in `sdks.yaml` beside it. Nothing about how this client is
# produced is written down here, so there is nothing here that can drift.
#
# ./scripts/generate.sh # regenerate in place
# ./scripts/generate.sh --check # non-zero if the committed client drifted
#
# BOTH INPUTS ARRIVE AS VALUES. $SPEC is the document, already fetched at a
# pinned ref and digest-checked; $OPENAPI is the checkout holding the driver.
# hanzoai/ci's client lane sets both, because it holds the one credential that
# reads this forge. This script used to clone the driver itself, anonymously,
# from a private repo — so every CI regeneration died at the clone with
# `could not read Username`. Set OPENAPI by hand to run it by hand.
#
# Requires: python3 (+pyyaml), java 11+.
set -euo pipefail
cd "$(dirname "$0")/.."
: "${OPENAPI:?the generator lives in hanzoai/openapi; the ci client lane sets OPENAPI, or point it at a checkout}"
if [ -n "${SPEC:-}" ]; then set -- --spec "$SPEC" "$@"; fi
exec python3 "$OPENAPI/generate.py" python --repo "$PWD" "$@"