From 030fef57656e76ad95f6f1ec8e082c57f26b21ff Mon Sep 17 00:00:00 2001 From: Martin Hickey Date: Mon, 1 Apr 2019 11:31:32 +0100 Subject: [PATCH] Fix docs targets Update to the `docs` and `verify-docs` targets for v3. Signed-off-by: Martin Hickey --- .gitignore | 1 + Makefile | 8 ++++++ docs/developers.md | 3 ++- scripts/update-docs.sh | 55 ++++++++++++++++++++++++++++++++++++++++++ scripts/verify-docs.sh | 55 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 121 insertions(+), 1 deletion(-) create mode 100755 scripts/update-docs.sh create mode 100755 scripts/verify-docs.sh diff --git a/.gitignore b/.gitignore index 65a60bf69..e18240eff 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ .idea/ .vimrc .vscode/ +/docs/helm /docs/man _dist/ bin/ diff --git a/Makefile b/Makefile index c4751469a..923becf05 100644 --- a/Makefile +++ b/Makefile @@ -81,6 +81,10 @@ test-style: vendor $(GOLANGCI_LINT) $(GOLANGCI_LINT) run @scripts/validate-license.sh +.PHONY: verify-docs +verify-docs: build + @scripts/verify-docs.sh + .PHONY: coverage coverage: @scripts/coverage.sh @@ -144,6 +148,10 @@ checksum: # ------------------------------------------------------------------------------ +.PHONY: docs +docs: build + @scripts/update-docs.sh + .PHONY: clean clean: @rm -rf $(BINDIR) ./_dist diff --git a/docs/developers.md b/docs/developers.md index 9431068eb..1e95c7c82 100644 --- a/docs/developers.md +++ b/docs/developers.md @@ -34,7 +34,8 @@ To run Helm locally, you can run `bin/helm`. ### Man pages -Man pages and Markdown documentation are already pre-built in `docs/`. +Man pages and Markdown documentation are not pre-built in `docs/` but you can +generate the documentation using `make docs`. To expose the Helm man pages to your `man` client, you can put the files in your `$MANPATH`: diff --git a/scripts/update-docs.sh b/scripts/update-docs.sh new file mode 100755 index 000000000..05ffb8005 --- /dev/null +++ b/scripts/update-docs.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# Copyright 2017 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +source scripts/util.sh + +if LANG=C sed --help 2>&1 | grep -q GNU; then + SED="sed" +elif which gsed &>/dev/null; then + SED="gsed" +else + echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2 + exit 1 +fi + +kube::util::ensure-temp-dir + +export HELM_NO_PLUGINS=1 + +# Reset Helm Home because it is used in the generation of docs. +OLD_HELM_HOME=${HELM_HOME:-} +HELM_HOME="$HOME/.helm" +bin/helm init +mkdir -p docs/helm +mkdir -p ${KUBE_TEMP}/docs/helm +bin/helm docs --dir ${KUBE_TEMP}/docs/helm +HELM_HOME=$OLD_HELM_HOME + +FILES=$(find ${KUBE_TEMP} -type f) + +${SED} -i -e "s:${HOME}:~:" ${FILES} + +for i in ${FILES}; do + ret=0 + truepath=$(echo ${i} | ${SED} "s:${KUBE_TEMP}/::") + diff -NauprB -I 'Auto generated' "${i}" "${truepath}" > /dev/null || ret=$? + if [[ $ret -ne 0 ]]; then + echo "${truepath} changed. Updating.." + cp "${i}" "${truepath}" + fi +done diff --git a/scripts/verify-docs.sh b/scripts/verify-docs.sh new file mode 100755 index 000000000..7aa590ecd --- /dev/null +++ b/scripts/verify-docs.sh @@ -0,0 +1,55 @@ +#!/usr/bin/env bash + +# Copyright 2017 The Kubernetes Authors All rights reserved. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -euo pipefail + +source scripts/util.sh + +if LANG=C sed --help 2>&1 | grep -q GNU; then + SED="sed" +elif which gsed &>/dev/null; then + SED="gsed" +else + echo "Failed to find GNU sed as sed or gsed. If you are on Mac: brew install gnu-sed." >&2 + exit 1 +fi + +kube::util::ensure-temp-dir + +export HELM_NO_PLUGINS=1 + +# Reset Helm Home because it is used in the generation of docs. +OLD_HELM_HOME=${HELM_HOME:-} +HELM_HOME="$HOME/.helm" +bin/helm init +mkdir -p ${KUBE_TEMP}/docs/helm +bin/helm docs --dir ${KUBE_TEMP}/docs/helm +HELM_HOME=$OLD_HELM_HOME + + +FILES=$(find ${KUBE_TEMP} -type f) + +${SED} -i -e "s:${HOME}:~:" ${FILES} +ret=0 +for i in ${FILES}; do + diff -NauprB -I 'Auto generated' ${i} $(echo ${i} | ${SED} "s:${KUBE_TEMP}/::") || ret=$? +done +if [[ $ret -eq 0 ]]; then + echo "helm docs up to date." +else + echo "helm docs are out of date. Please run \"make docs\"" + exit 1 +fi