llama-stack-mirror/docs/openapi_generator/run_openapi_generator.sh
Ashwin Bharambe 9f87d67849 fixes
2025-11-14 15:29:31 -08:00

61 lines
1.8 KiB
Bash
Executable file

#!/bin/bash
# Copyright (c) Meta Platforms, Inc. and affiliates.
# All rights reserved.
#
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.
#
# Pass --target-root to direct generated artifacts into an alternate checkout
# (used by the trusted autofix workflow running from a base-branch worktree).
PYTHONPATH=${PYTHONPATH:-}
THIS_DIR="$(cd "$(dirname "$(readlink -f "${BASH_SOURCE[0]}")")" && pwd)"
SOURCE_STACK_DIR="$(dirname "$(dirname "$THIS_DIR")")"
TARGET_STACK_DIR="$SOURCE_STACK_DIR"
while [[ $# -gt 0 ]]; do
case "$1" in
--target-root)
shift
if [[ $# -eq 0 ]]; then
echo "Error: --target-root requires a value" >&2
exit 1
fi
TARGET_STACK_DIR="$1"
;;
*)
echo "Error: unknown argument '$1'" >&2
exit 1
;;
esac
shift
done
TARGET_STATIC_DIR="$TARGET_STACK_DIR/docs/openapi_generator/static"
TARGET_SPEC_PATH="$TARGET_STACK_DIR/client-sdks/stainless/openapi.yml"
set -euo pipefail
missing_packages=()
check_package() {
if ! pip show "$1" &>/dev/null; then
missing_packages+=("$1")
fi
}
if [ ${#missing_packages[@]} -ne 0 ]; then
echo "Error: The following package(s) are not installed:"
printf " - %s\n" "${missing_packages[@]}"
echo "Please install them using:"
echo "pip install ${missing_packages[*]}"
exit 1
fi
mkdir -p "$TARGET_STATIC_DIR"
mkdir -p "$(dirname "$TARGET_SPEC_PATH")"
PYTHONPATH="$TARGET_STACK_DIR:$TARGET_STACK_DIR/src:$PYTHONPATH" \
python "$SOURCE_STACK_DIR/docs/openapi_generator/generate.py" "$TARGET_STATIC_DIR"
cp "$TARGET_STACK_DIR/docs/static/stainless-llama-stack-spec.yaml" "$TARGET_SPEC_PATH"