lint-docs: check the guide list in command-list.txt

Since 2135e1ad70 (command-list.txt: add missing 'gitcredentials' and
'gitremote-helpers', 2020-08-05) there has been a comment in
Documentation/Makefile reminding developers to add new guides also to
command-list.txt.  However, there is no linter script to enforce that.

Adapt Documentation/lint-manpages.sh to fill that role.  Extract
MAN5_TXT and MAN7_TXT from the Makefile and check command-list.txt
against them.  Exempt gitweb.conf(5) from the new linter routine.

Signed-off-by: Tuomas Ahola <taahol@utu.fi>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
jch
Tuomas Ahola 2026-09-10 22:43:51 +03:00 committed by Junio C Hamano
parent 31ab70944f
commit 4ce144a152
2 changed files with 9 additions and 3 deletions

View File

@ -67,6 +67,8 @@ MAN7_TXT += gittutorial-2.adoc
MAN7_TXT += gittutorial.adoc
MAN7_TXT += gitworkflows.adoc

MAN_GUIDES = $(patsubst %.adoc,%,$(MAN5_TXT) $(MAN7_TXT))

HOWTO_TXT += $(wildcard howto/*.adoc)

DOC_DEP_TXT += $(wildcard *.adoc)

View File

@ -1,21 +1,23 @@
#!/bin/sh

extract_variable () {
file=${2:-../Makefile}
directory=$(dirname "$file")
(
cat ../Makefile
cat "$file"
cat <<EOF
print_variable:
@\$(foreach b,\$($1),echo XXX \$(b:\$X=) YYY;)
EOF
) |
make -C .. -f - print_variable 2>/dev/null |
make -C "$directory" -f - print_variable 2>/dev/null |
sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p'
}

check_missing_docs () (
ret=0

for v in $ALL_COMMANDS
for v in $ALL_COMMANDS $MAN_GUIDES
do
case "$v" in
git-merge-octopus) continue;;
@ -29,6 +31,7 @@ check_missing_docs () (
git-stage) continue;;
git-legacy-*) continue;;
git-?*--?* ) continue ;;
gitweb.conf) continue ;;
esac

if ! test -f "$v.adoc"
@ -87,6 +90,7 @@ check_extraneous_docs () {
BUILT_INS="$(extract_variable BUILT_INS)"
ALL_COMMANDS="$(extract_variable ALL_COMMANDS)"
EXCLUDED_PROGRAMS="$(extract_variable EXCLUDED_PROGRAMS)"
MAN_GUIDES="$(extract_variable MAN_GUIDES ./Makefile)"

findings=$(
if ! check_missing_docs