diff options
Diffstat (limited to 'man/check-man')
-rwxr-xr-x | man/check-man | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/man/check-man b/man/check-man new file mode 100755 index 0000000..b28e039 --- /dev/null +++ b/man/check-man @@ -0,0 +1,45 @@ +#! /bin/sh +set -e + +# Check that a manual page formats without errors. Lintian does something +# similar for Debian packages. Relies on top_builddir and LINGUA variables +# exported from 'make check', or you can set them manually. + +if [ -z "$top_builddir" ]; then + echo "top_builddir unset; try 'make check' instead?" + exit 77 +elif [ -z "$LINGUA" ]; then + echo "LINGUA unset; try 'make check' instead?" + exit 77 +fi + +[ -x "$top_builddir/src/man" ] || exit 77 + +warnings=mac +# Ignore wrapping failures for CJK manual pages; this should go away once +# groff supports these natively. +# Indeed, even for other languages we're going to get "cannot adjust line" +# if %manpath_config_file% expands to something long. Hmm. We'll just ignore +# this across the board for now. +warnings="$warnings,!break" + +code=0 +errors="$(LC_ALL=C MANWIDTH=80 MAN_KEEP_FORMATTING=1 "$top_builddir/libtool" \ + --mode=execute \ + -dlopen "$top_builddir/lib/.libs/libman.la" \ + -dlopen "$top_builddir/libdb/.libs/libmandb.la" \ + "$top_builddir/src/man" --warnings="$warnings" -E UTF-8 \ + -l "$1" \ + 2>&1 >/dev/null)" || code=$? + +if [ "$code" != 0 ]; then + echo "man -E UTF-8 -l $1 failed with exit status $code and error output:" + echo "$errors" + exit $code +elif [ "$errors" ]; then + echo "man -E UTF-8 -l $1 produced error output:" + echo "$errors" + exit 1 +else + exit 0 +fi |