44set -e
55
66PROJECT_DIRECTORY=" $( cd " $( dirname " ${BASH_SOURCE[0]} " ) " > /dev/null 2>&1 && pwd ) "
7+ USE_VENV=${USE_VENV:- " 1" }
8+ if [ " $USE_VENV " != " 0" ]; then
9+ if [ -f " ${PROJECT_DIRECTORY} /.venv/bin/activate" ]; then
10+ source " ${PROJECT_DIRECTORY} /.venv/bin/activate"
11+ else
12+ echo " ERROR: USE_VENV=${USE_VENV} but ${PROJECT_DIRECTORY} /.venv/bin/activate not found" >&2
13+ exit 1
14+ fi
15+ fi
16+
17+ GXFORMAT2_SCHEMA_BUILD_DRY_RUN=${GXFORMAT2_SCHEMA_BUILD_DRY_RUN:- " 0" }
18+ SCHEME_SOURCE_DIRECTORY=" ${PROJECT_DIRECTORY} /gxformat2/schema"
19+ if [ " ${GXFORMAT2_SCHEMA_BUILD_DRY_RUN} " = " 1" ]; then
20+ SCHEME_SOURCE_DIRECTORY=" $( mktemp -d -t gxformat2-schema.XXXXXX) "
21+ echo " GXFORMAT2_SCHEMA_BUILD_DRY_RUN=1; writing generated schemas to ${SCHEME_SOURCE_DIRECTORY} " >&2
22+ fi
23+ mkdir -p " ${SCHEME_SOURCE_DIRECTORY} "
724SKIP_JAVA=${SKIP_JAVA:- 0}
825SKIP_TYPESCRIPT=${SKIP_TYPESCRIPT:- 0}
926DIST_DIRECTORY=" ${PROJECT_DIRECTORY} /dist/schema"
@@ -17,7 +34,7 @@ for schema in "v19_09";
1734do
1835 cd schema/" $schema " ;
1936 python_schema_name=${schema// ./ _}
20- schema-salad-tool --codegen python workflow.yml > " ${PROJECT_DIRECTORY} /gxformat2/schema /${python_schema_name} .py"
37+ schema-salad-tool --codegen python workflow.yml > " ${SCHEME_SOURCE_DIRECTORY} /${python_schema_name} .py"
2138
2239 out=" ${DIST_DIRECTORY} /${schema} .html"
2340 schema-salad-doc \
5875
5976# Native workflow format schema
6077cd " ${PROJECT_DIRECTORY} " /schema/native_v0_1
61- schema-salad-tool --codegen python workflow.yml > " ${PROJECT_DIRECTORY} /gxformat2/schema /native_v0_1.py"
78+ schema-salad-tool --codegen python workflow.yml > " ${SCHEME_SOURCE_DIRECTORY} /native_v0_1.py"
6279
6380out=" ${DIST_DIRECTORY} /native_v0_1.html"
6481schema-salad-doc \
@@ -76,10 +93,10 @@ schema-salad-doc \
7693SKIP_PYDANTIC=${SKIP_PYDANTIC:- 0}
7794if [ $SKIP_PYDANTIC -eq 0 ]; then
7895 cd " ${PROJECT_DIRECTORY} "
79- schema-salad-plus-pydantic generate schema/v19_09/workflow.yml -o gxformat2/schema/ gxformat2.py
80- schema-salad-plus-pydantic generate schema/v19_09/workflow.yml --strict -o gxformat2/schema/ gxformat2_strict.py
81- schema-salad-plus-pydantic generate schema/native_v0_1/workflow.yml -o gxformat2/schema/ native.py
82- schema-salad-plus-pydantic generate schema/native_v0_1/workflow.yml --strict -o gxformat2/schema/ native_strict.py
96+ schema-salad-plus-pydantic generate schema/v19_09/workflow.yml -o " ${SCHEME_SOURCE_DIRECTORY} / gxformat2.py"
97+ schema-salad-plus-pydantic generate schema/v19_09/workflow.yml --strict -o " ${SCHEME_SOURCE_DIRECTORY} / gxformat2_strict.py"
98+ schema-salad-plus-pydantic generate schema/native_v0_1/workflow.yml -o " ${SCHEME_SOURCE_DIRECTORY} / native.py"
99+ schema-salad-plus-pydantic generate schema/native_v0_1/workflow.yml --strict -o " ${SCHEME_SOURCE_DIRECTORY} / native_strict.py"
83100 schema-salad-plus-pydantic enhance-docs schema/native_v0_1/workflow.yml " ${DIST_DIRECTORY} /native_v0_1.html"
84101else
85102 # Fallback post-processing without schema-salad-plus-pydantic
0 commit comments