#!/usr/bin/env bash set -e if [[ "$OSTYPE" == "darwin"* ]]; then sed() { gsed "$@" } fi mkdir openapi || true # cp ../backend/windmill-api/openapi.yaml openapi/openapi.yaml LEGACY_WILDCARD="\$ref: \"..\/..\/openflow.openapi.yaml#\/components\/schemas\"" # We will need to use old syntax of openapi to maintain compatability with previous windmill-api versions. # If we use new format, many models use another namespace, thus make it not fully compatible with old versions # Replace everything between markers with legacy wildcard sed -z " s/# -- INLINE START --\n.*# -- INLINE END --\n/$LEGACY_WILDCARD\n/g; " ../backend/windmill-api/openapi.yaml > openapi/openapi.yaml npx @redocly/openapi-cli@latest bundle openapi/openapi.yaml > openapi-bundled.yaml sed -z 's/FlowModuleValue:/FlowModuleValue2:/' openapi-bundled.yaml > openapi-decycled.yaml echo " FlowModuleValue: {}" >> openapi-decycled.yaml npx @redocly/openapi-cli@latest bundle openapi-decycled.yaml --ext json -d > openapi-deref.json sed '$d' .gitignore > .gitignore2 mv .gitignore2 .gitignore rm -rf windmill-api/ || true openapi-python-client generate --config $PWD/python-gen.yaml --path openapi-deref.json echo "" > windmill-api/windmill_api/models/__init__.py rm -rf openapi/ rm openapi* cp LICENSE windmill-api/ sed -i '5 i license = "Apache-2.0"' windmill-api/pyproject.toml sed -i 's/authors = \[\]/authors = \["Ruben Fiszel "\]/g' windmill-api/pyproject.toml echo "# Autogenerated Windmill OpenApi Client" >> windmill-api/README.md.tmp echo "This is the raw autogenerated api client. You are most likely more interested \ in [wmill](https://pypi.org/project/wmill/) which leverages this client to offer an \ user friendly experience. We use \ [this openapi python client generator](https://github.com/openapi-generators/openapi-python-client/)"\ >> windmill-api/README.md.tmp echo "" >> windmill-api/README.md.tmp if [[ "$OSTYPE" == "darwin"* ]]; then tail -r windmill-api/README.md | tail -n +14 | tail -r >> windmill-api/README.md.tmp else head -n -13 windmill-api/README.md >> windmill-api/README.md.tmp fi mv windmill-api/README.md.tmp windmill-api/README.md cd windmill-api && poetry build cd ../wmill && poetry build cd .. && echo "windmill-api/" >> .gitignore # Build documentation (similar to typescript-client/build_typedoc.sh) ./build_pdoc.sh