charts/hack/gen-helm-docs.sh
ᗪєνιη ᗷυнʟ 5ba6779f0e
Add Helm Docs (#595)
2021-02-17 17:43:56 -05:00

36 lines
1.5 KiB
Bash
Executable File

#!/usr/bin/env bash
set -eu
#
# Generate helm-docs for Helm charts using the common library
#
# Absolute path of repository
repository=$(git rev-parse --show-toplevel)
# Templates to copy into each chart directory
readme_template="${repository}/hack/templates/README.md.gotmpl"
readme_config_template="${repository}/hack/templates/README_CONFIG.md.gotmpl"
readme_changelog_template="${repository}/hack/templates/README_CHANGELOG.md.gotmpl"
# Gather all charts using the common library, excluding common-test
charts=$(find "${repository}" -name "Chart.yaml" -exec grep --exclude="*common-test*" -l "\- name\: common" {} \;)
for chart in ${charts}; do
chart_directory="$(dirname "${chart}")"
# Copy README template into each Chart directory, overwrite if exists
cp "${readme_template}" "${chart_directory}"
# Copy CUSTOM_CONFIG template to each Chart directory, do not overwrite if exists
cp -n "${readme_config_template}" "${chart_directory}" || true
# Copy CHANGELOG template to each Chart directory, do not overwrite if exists
cp -n "${readme_changelog_template}" "${chart_directory}" || true
done
# Run helm-docs for charts using the common library and the common library itself
helm-docs \
--ignore-file="${repository}/.helmdocsignore" \
--template-files="$(basename "${readme_template}")" \
--template-files="$(basename "${readme_config_template}")" \
--template-files="$(basename "${readme_changelog_template}")" \
--chart-search-root="${repository}"