From 14321ef959bdd22c2667911960465a7e89d271c0 Mon Sep 17 00:00:00 2001 From: Tim Hockin Date: Fri, 12 Jan 2024 16:22:46 -0800 Subject: [PATCH] Move doc-generation funcs into only caller --- hack/lib/util.sh | 53 -------------------------- hack/update-generated-docs.sh | 72 +++++++++++++++++++++++++++++------ hack/verify-generated-docs.sh | 17 +-------- 3 files changed, 62 insertions(+), 80 deletions(-) diff --git a/hack/lib/util.sh b/hack/lib/util.sh index 549a48175d1..e9197eff9bb 100755 --- a/hack/lib/util.sh +++ b/hack/lib/util.sh @@ -243,59 +243,6 @@ kube::util::find-binary() { kube::util::find-binary-for-platform "$1" "$(kube::util::host_platform)" } -# Run all known doc generators (today gendocs and genman for kubectl) -# $1 is the directory to put those generated documents -kube::util::gen-docs() { - local dest="$1" - - # Find binary - gendocs=$(kube::util::find-binary "gendocs") - genkubedocs=$(kube::util::find-binary "genkubedocs") - genman=$(kube::util::find-binary "genman") - genyaml=$(kube::util::find-binary "genyaml") - - mkdir -p "${dest}/docs/user-guide/kubectl/" - "${gendocs}" "${dest}/docs/user-guide/kubectl/" - mkdir -p "${dest}/docs/admin/" - "${genkubedocs}" "${dest}/docs/admin/" "kube-apiserver" - "${genkubedocs}" "${dest}/docs/admin/" "kube-controller-manager" - "${genkubedocs}" "${dest}/docs/admin/" "kube-proxy" - "${genkubedocs}" "${dest}/docs/admin/" "kube-scheduler" - "${genkubedocs}" "${dest}/docs/admin/" "kubelet" - "${genkubedocs}" "${dest}/docs/admin/" "kubeadm" - - mkdir -p "${dest}/docs/man/man1/" - "${genman}" "${dest}/docs/man/man1/" "kube-apiserver" - "${genman}" "${dest}/docs/man/man1/" "kube-controller-manager" - "${genman}" "${dest}/docs/man/man1/" "kube-proxy" - "${genman}" "${dest}/docs/man/man1/" "kube-scheduler" - "${genman}" "${dest}/docs/man/man1/" "kubelet" - "${genman}" "${dest}/docs/man/man1/" "kubectl" - "${genman}" "${dest}/docs/man/man1/" "kubeadm" - - mkdir -p "${dest}/docs/yaml/kubectl/" - "${genyaml}" "${dest}/docs/yaml/kubectl/" - - # create the list of generated files - pushd "${dest}" > /dev/null || return 1 - touch docs/.generated_docs - find . -type f | cut -sd / -f 2- | LC_ALL=C sort > docs/.generated_docs - popd > /dev/null || return 1 -} - -# Removes previously generated docs-- we don't want to check them in. $KUBE_ROOT -# must be set. -kube::util::remove-gen-docs() { - if [ -e "${KUBE_ROOT}/docs/.generated_docs" ]; then - # remove all of the old docs; we don't want to check them in. - while read -r file; do - rm "${KUBE_ROOT}/${file}" 2>/dev/null || true - done <"${KUBE_ROOT}/docs/.generated_docs" - # The docs/.generated_docs file lists itself, so we don't need to explicitly - # delete it. - fi -} - # Takes a group/version and returns the path to its location on disk, sans # "pkg". E.g.: # * default behavior: extensions/v1beta1 -> apis/extensions/v1beta1 diff --git a/hack/update-generated-docs.sh b/hack/update-generated-docs.sh index 220c2dc3daa..7dee1bf252d 100755 --- a/hack/update-generated-docs.sh +++ b/hack/update-generated-docs.sh @@ -26,21 +26,69 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. source "${KUBE_ROOT}/hack/lib/init.sh" kube::golang::setup_env - -BINS=( - cmd/gendocs - cmd/genkubedocs - cmd/genman - cmd/genyaml -) -make -C "${KUBE_ROOT}" WHAT="${BINS[*]}" - kube::util::ensure-temp-dir -kube::util::gen-docs "${KUBE_TEMP}" +BINS=( + ./cmd/gendocs + ./cmd/genkubedocs + ./cmd/genman + ./cmd/genyaml +) +GOPROXY=off go install "${BINS[@]}" -# remove all of the old docs -kube::util::remove-gen-docs +# Run all doc generators. +# $1 is the directory to put those generated documents +generate_docs() { + local dest="$1" + + mkdir -p "${dest}/docs/user-guide/kubectl/" + gendocs "${dest}/docs/user-guide/kubectl/" + + mkdir -p "${dest}/docs/admin/" + genkubedocs "${dest}/docs/admin/" "kube-apiserver" + genkubedocs "${dest}/docs/admin/" "kube-controller-manager" + genkubedocs "${dest}/docs/admin/" "kube-proxy" + genkubedocs "${dest}/docs/admin/" "kube-scheduler" + genkubedocs "${dest}/docs/admin/" "kubelet" + genkubedocs "${dest}/docs/admin/" "kubeadm" + + mkdir -p "${dest}/docs/man/man1/" + genman "${dest}/docs/man/man1/" "kube-apiserver" + genman "${dest}/docs/man/man1/" "kube-controller-manager" + genman "${dest}/docs/man/man1/" "kube-proxy" + genman "${dest}/docs/man/man1/" "kube-scheduler" + genman "${dest}/docs/man/man1/" "kubelet" + genman "${dest}/docs/man/man1/" "kubectl" + genman "${dest}/docs/man/man1/" "kubeadm" + + mkdir -p "${dest}/docs/yaml/kubectl/" + genyaml "${dest}/docs/yaml/kubectl/" + + # create the list of generated files + pushd "${dest}" > /dev/null || return 1 + touch docs/.generated_docs + find . -type f | cut -sd / -f 2- | LC_ALL=C sort > docs/.generated_docs + popd > /dev/null || return 1 +} + +# Removes previously generated docs-- we don't want to check them in. $KUBE_ROOT +# must be set. +remove_generated_docs() { + if [ -e "${KUBE_ROOT}/docs/.generated_docs" ]; then + # remove all of the old docs; we don't want to check them in. + while read -r file; do + rm "${KUBE_ROOT}/${file}" 2>/dev/null || true + done <"${KUBE_ROOT}/docs/.generated_docs" + # The docs/.generated_docs file lists itself, so we don't need to explicitly + # delete it. + fi +} + +# generate into KUBE_TMP +generate_docs "${KUBE_TEMP}" + +# remove all of the existing docs in KUBE_ROOT +remove_generated_docs # Copy fresh docs into the repo. # the shopt is so that we get docs/.generated_docs from the glob. diff --git a/hack/verify-generated-docs.sh b/hack/verify-generated-docs.sh index 27a9e6b2ba5..a24a64d081c 100755 --- a/hack/verify-generated-docs.sh +++ b/hack/verify-generated-docs.sh @@ -23,19 +23,6 @@ set -o nounset set -o pipefail KUBE_ROOT=$(dirname "${BASH_SOURCE[0]}")/.. -source "${KUBE_ROOT}/hack/lib/init.sh" +source "${KUBE_ROOT}/hack/lib/verify-generated.sh" -kube::golang::setup_env - -BINS=( - ./cmd/gendocs - ./cmd/genkubedocs - ./cmd/genman - ./cmd/genyaml -) -GOPROXY=off go install "${BINS[@]}" - -kube::util::ensure-temp-dir - -# just verify the generation process -kube::util::gen-docs "${KUBE_TEMP}" +kube::verify::generated "Generated docs need to be updated" "Please run 'hack/update-generated-docs.sh'" hack/update-generated-docs.sh "$@"