The "lint-manpages.sh" script does not return an error in case any of
its checks fail. While this is faithful to the implementation that we
had as part of the "check-docs" target before the preceding commit, it
makes it hard to spot any violations of the rules via the corresponding
CI job, which will of course exit successfully, too.
Adapt the script to bubble up errors.
Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sed -n -e 's/.*XXX \(.*\) YYY.*/\1/p'
}
-check_missing_docs () {
+check_missing_docs () (
+ ret=0
+
for v in $ALL_COMMANDS
do
case "$v" in
if ! test -f "$v.txt"
then
echo "no doc: $v"
+ ret=1
fi
if ! sed -e '1,/^### command list/d' -e '/^#/d' ../command-list.txt |
git)
;;
*)
- echo "no link: $v";;
+ echo "no link: $v"
+ ret=1
+ ;;
esac
fi
done
-}
+
+ exit $ret
+)
check_extraneous_docs () {
(
-e 's/\.txt//'
) | (
all_commands="$(printf "%s " "$ALL_COMMANDS" "$BUILT_INS" "$EXCLUDED_PROGRAMS" | tr '\n' ' ')"
+ ret=0
while read how cmd
do
case " $all_commands " in
*" $cmd "*) ;;
*)
- echo "removed but $how: $cmd";;
+ echo "removed but $how: $cmd"
+ ret=1;;
esac
done
+
+ exit $ret
)
}
ALL_COMMANDS="$(extract_variable ALL_COMMANDS)"
EXCLUDED_PROGRAMS="$(extract_variable EXCLUDED_PROGRAMS)"
-{
- check_missing_docs
- check_extraneous_docs
-} | sort
+findings=$(
+ if ! check_missing_docs
+ then
+ ret=1
+ fi
+
+ if ! check_extraneous_docs
+ then
+ ret=1
+ fi
+
+ exit $ret
+)
+ret=$?
+
+printf "%s" "$findings" | sort
+
+exit $ret