#!/usr/bin/env bash set -eu # This script uses schematyper, which must be installed and in the PATH, to # convert the json schema stored in schema/ignition.json into go structs for # json deserialization in config/types/schema.go. # # This script should be run whenever schema/ignition.json is modified. hash schematyper 2>/dev/null || { echo >&2 "schematyper must be installed and in the PATH to use this script: https://github.com/idubinskiy/schematyper" exit 1 } specs="v3_0 v3_1 v3_2 v3_3 v3_4 v3_5 v3_6_experimental" for spec in $specs do echo "Generating $spec schema..." schematyper --package=types "config/${spec}/schema/ignition.json" -o "config/${spec}/types/schema.go" --root-type=Config done echo "Generating docs..." eval $(go env) if [ -z ${BIN_PATH+a} ]; then export BIN_PATH=${PWD}/bin/${GOARCH} fi go build -o ${BIN_PATH}/doc internal/doc/main.go ${BIN_PATH}/doc ${PWD}/docs