From cdcf21fdf9893fa273fe55974f679a98303c0081 Mon Sep 17 00:00:00 2001 From: Adam Borowski Date: Fri, 18 Oct 2019 20:43:42 +0200 Subject: [PATCH] doc: check-manpage: parallelize 40s -> 1.2s --- utils/check-manpage | 25 +++++++++++++++++++++++++ utils/check-manpages | 19 ++----------------- 2 files changed, 27 insertions(+), 17 deletions(-) create mode 100755 utils/check-manpage diff --git a/utils/check-manpage b/utils/check-manpage new file mode 100755 index 00000000000..c53e79075ae --- /dev/null +++ b/utils/check-manpage @@ -0,0 +1,25 @@ +#!/bin/bash +# SPDX-License-Identifier: BSD-3-Clause +# Copyright 2019, Intel Corporation + +for m in "$@"; do + dir="$(dirname $m)" + file="$(basename $m)" + # system-installed version is preferred otherwise for .so links + [ -n "$dir" ] && pushd "$dir" >/dev/null + err=$(MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z "$file" 2>&1 >/dev/null) + [ -z "$err" ] || { + echo >&2 "$file: $err" + FAILED=1 + } + + if grep -q '^\.SH NAME' "$file"; then + if ! lexgrog "$file" >/dev/null; then + echo 2>&1 "lexgrog failed on $file" + FAILED=1 + fi + fi + popd >/dev/null 2>/dev/null +done + +exit $FAILED diff --git a/utils/check-manpages b/utils/check-manpages index 9fc39dab05e..db57f252800 100755 --- a/utils/check-manpages +++ b/utils/check-manpages @@ -6,21 +6,6 @@ MANS="$*" [ -n "$MANS" ] || MANS="$(find doc -name '*.1' -o -name '*.3' -o -name '*.5' -o -name '*.7')" -[ -n "$MANS" ] || echo >&2 "No man pages given, and none found in doc/" +[ -n "$MANS" ] || { echo >&2 "No man pages given, and none found in doc/"; exit 1;} -for m in $MANS; do - if grep -q '^\.SH NAME' "$m"; then - if ! lexgrog "$m" >/dev/null; then - echo 2>&1 "lexgrog failed on $m" - FAILED=1 - fi - fi - - err=`MANWIDTH=80 man --warnings -E UTF-8 -l -Tutf8 -Z "$m" 2>&1 >/dev/null` - [ -z "$err" ] || { - echo "$err" >&2 - FAILED=1 - } -done - -exit $FAILED +echo "$MANS"|xargs -P `nproc` -n1 -- utils/check-manpage