/
githubmirror
/
coreos-installer
Обзор
Документация
Войти
/
githubmirror
/
coreos-installer
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
docs/_cmd.sh
56 строк
2 KB
Benjamin Gilbert
Fix docs generation and tests for clap 4 API and formatting changes
08 июн 2023, 18:26
08 июн 2023, 18:26
103455d
Код
Авторство
О чём код?
#!/bin/bash # Regenerate docs/cmd/ from long help text set -euo pipefail rootdir="$(dirname $0)/.." prog="${rootdir}/target/${PROFILE:-debug}/coreos-installer" generate() { local subcommand subcommands subcommands=$("${prog}" $* -h | awk 'BEGIN {subcommands=0} /^$/ {if (subcommands) exit} {if (subcommands) print $1} /^Commands:$/ {subcommands=1}') # Generate TOC if this is a root command with subcommands if [ -n "${subcommands}" -a $# = 1 ]; then cat <<EOF # coreos-installer $* {: .no_toc } 1. TOC {:toc} EOF fi # Generate docs if this subcommand doesn't have subcommands if [ -z "${subcommands}" ]; then cat <<EOF # coreos-installer $* \`\`\` EOF # Run coreos-installer in a PTY and override the terminal width to # the one we want, regardless of the caller's terminal. More than # 100 characters will cause the code block to scroll. # Drop CR characters added by `script`. # Fix trailing whitespace script -qc "stty cols 95 rows 24; ${prog} $* --help" /dev/null | tr -d '\r' | sed 's/[[:blank:]]*$//' echo '```' fi # Recurse for subcommand in ${subcommands}; do generate $* ${subcommand} done } for path in ${rootdir}/docs/cmd/*.md; do echo "Generating $(realpath --relative-to=${rootdir} ${path})..." # copy YAML metadata awk '/^$/ {exit} {print}' "${path}" > "${path}.new" generate "$(basename ${path} .md)" >> "${path}.new" mv "${path}.new" "${path}" done