docker-cli/scripts/docs/generate-man.sh
Sebastiaan van Stijn 80bca8eb1d
man: rewrite to use cli-docs-tool manpage generator
It's a wrapper around Cobra's generator, but handles some special
cases. While rewriting, also rewrite the generator code to align
with the mddocs/yamldocs counterpart in docs/generate/

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2025-03-25 17:07:40 +01:00

38 lines
816 B
Bash
Executable File

#!/usr/bin/env bash
set -eu
: "${GO_MD2MAN:=go-md2man}"
if ! command -v "$GO_MD2MAN" > /dev/null; then
(
set -x
go build -mod=vendor -modfile=vendor.mod -o ./build/tools/go-md2man ./vendor/github.com/cpuguy83/go-md2man/v2
)
GO_MD2MAN=$(realpath ./build/tools/go-md2man)
fi
mkdir -p man/man1
(
set -x
go run -mod=vendor -modfile=vendor.mod -tags manpages ./man/generate.go --source "./man/src" --target "./man/man1"
)
(
cd man
for FILE in *.md; do
base="$(basename "$FILE")"
name="${base%.md}"
num="${name##*.}"
if [ -z "$num" ] || [ "$name" = "$num" ]; then
# skip files that aren't of the format xxxx.N.md (like README.md)
continue
fi
mkdir -p "./man${num}"
(
set -x ;
"$GO_MD2MAN" -in "$FILE" -out "./man${num}/${name}"
)
done
)