Generate swagger from update-codegen
Swagger "docs" are actually Go code, which is used by other codegen tools, so if you really want to regen EVERYTHING, this is part of it and sequence matters.
This commit is contained in:
@@ -118,6 +118,80 @@ function codegen::protobuf() {
|
||||
build/run.sh hack/update-generated-protobuf-dockerized.sh "${apis[@]}"
|
||||
}
|
||||
|
||||
# Generates types_swagger_doc_generated file for the given group version.
|
||||
# $1: Name of the group version
|
||||
# $2: Path to the directory where types.go for that group version exists. This
|
||||
# is the directory where the file will be generated.
|
||||
function gen_types_swagger_doc() {
|
||||
# The tool used to generate swagger code.
|
||||
local swagger_bin
|
||||
swagger_bin="$(kube::util::find-binary "genswaggertypedocs")"
|
||||
|
||||
local group_version="$1"
|
||||
local gv_dir="$2"
|
||||
local tmpfile
|
||||
tmpfile="${TMPDIR:-/tmp}/types_swagger_doc_generated.$(date +%s).go"
|
||||
|
||||
if [[ "${DBG_CODEGEN}" == 1 ]]; then
|
||||
kube::log::status "DBG: running ${swagger_bin} for ${group_version} at ${gv_dir}"
|
||||
fi
|
||||
|
||||
{
|
||||
cat "${BOILERPLATE_FILENAME}"
|
||||
echo
|
||||
echo "package ${group_version##*/}"
|
||||
# Indenting here prevents the boilerplate checker from thinking this file
|
||||
# is generated - gofmt will fix the indents anyway.
|
||||
cat <<EOF
|
||||
|
||||
// This file contains a collection of methods that can be used from go-restful to
|
||||
// generate Swagger API documentation for its models. Please read this PR for more
|
||||
// information on the implementation: https://github.com/emicklei/go-restful/pull/215
|
||||
//
|
||||
// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if
|
||||
// they are on one line! For multiple line or blocks that you want to ignore use ---.
|
||||
// Any context after a --- is ignored.
|
||||
//
|
||||
// Those methods can be generated by using hack/update-codegen.sh
|
||||
|
||||
// AUTO-GENERATED FUNCTIONS START HERE. DO NOT EDIT.
|
||||
EOF
|
||||
} > "${tmpfile}"
|
||||
|
||||
"${swagger_bin}" \
|
||||
-s \
|
||||
"${gv_dir}/types.go" \
|
||||
-f - \
|
||||
>> "${tmpfile}"
|
||||
|
||||
echo "// AUTO-GENERATED FUNCTIONS END HERE" >> "${tmpfile}"
|
||||
|
||||
gofmt -w -s "${tmpfile}"
|
||||
mv "${tmpfile}" "${gv_dir}/types_swagger_doc_generated.go"
|
||||
}
|
||||
|
||||
# swagger generation
|
||||
#
|
||||
# Some of the later codegens depend on the results of this, so it needs to come
|
||||
# first in the case of regenerating everything.
|
||||
function codegen::swagger() {
|
||||
# Build the tool
|
||||
GO111MODULE=on GOPROXY=off go install \
|
||||
./cmd/genswaggertypedocs
|
||||
|
||||
local group_versions=()
|
||||
IFS=" " read -r -a group_versions <<< "meta/v1 meta/v1beta1 ${KUBE_AVAILABLE_GROUP_VERSIONS}"
|
||||
|
||||
kube::log::status "Generating swagger for ${#group_versions[@]} targets"
|
||||
|
||||
git_find -z ':(glob)**/types_swagger_doc_generated.go' | xargs -0 rm -f
|
||||
|
||||
# Regenerate files.
|
||||
for group_version in "${group_versions[@]}"; do
|
||||
gen_types_swagger_doc "${group_version}" "$(kube::util::group-version-to-pkg-path "${group_version}")"
|
||||
done
|
||||
}
|
||||
|
||||
# prerelease-lifecycle generation
|
||||
#
|
||||
# Any package that wants prerelease-lifecycle functions generated must include a
|
||||
|
Reference in New Issue
Block a user