Documentation: refactor "api-index.sh" for out-of-tree builds

The "api-index.sh" script generates an index of API-related
documentation. The script does not handle out-of-tree builds and thus
cannot be used easily by Meson.

Refactor it to be independent of locations by both accepting a source
directory where the API docs live as well as a path to an output file.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Patrick Steinhardt 2024-12-27 14:59:35 +01:00 committed by Junio C Hamano
parent ae0b33939d
commit 88e08b92e9
2 changed files with 16 additions and 5 deletions

View File

@ -367,7 +367,7 @@ user-manual.xml: user-manual.txt $(ASCIIDOC_DEPS)
technical/api-index.txt: technical/api-index-skel.txt \
technical/api-index.sh $(patsubst %,%.txt,$(API_DOCS))
$(QUIET_GEN)cd technical && '$(SHELL_PATH_SQ)' ./api-index.sh
$(QUIET_GEN)'$(SHELL_PATH_SQ)' technical/api-index.sh ./technical ./technical/api-index.txt
technical/%.html: ASCIIDOC_EXTRA += -a git-relative-html-prefix=../
$(patsubst %,%.html,$(API_DOCS) technical/api-index $(TECH_DOCS)): %.html : %.txt \

View File

@ -1,6 +1,17 @@
#!/bin/sh
if test $# -ne 2
then
echo >&2 "USAGE: $0 <SOURCE_DIR> <OUTPUT>"
exit 1
fi
SOURCE_DIR="$1"
OUTPUT="$2"
(
cd "$SOURCE_DIR"
c=////////////////////////////////////////////////////////////////
skel=api-index-skel.txt
sed -e '/^\/\/ table of contents begin/q' "$skel"
@ -18,11 +29,11 @@
done
echo "$c"
sed -n -e '/^\/\/ table of contents end/,$p' "$skel"
) >api-index.txt+
) >"$OUTPUT"+
if test -f api-index.txt && cmp api-index.txt api-index.txt+ >/dev/null
if test -f "$OUTPUT" && cmp "$OUTPUT" "$OUTPUT"+ >/dev/null
then
rm -f api-index.txt+
rm -f "$OUTPUT"+
else
mv api-index.txt+ api-index.txt
mv "$OUTPUT"+ "$OUTPUT"
fi