diff options
author | EuAndreh <eu@euandre.org> | 2021-07-15 11:52:16 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-07-15 11:52:16 -0300 |
commit | 0f689438635d3a1c4cbf9cc1e62b69a72e642c68 (patch) | |
tree | 8185e1a5d76655ba09261ef0fab638e62d946225 /aux | |
parent | tests/install-uninstall.sh: Remove in favor of aux/workflow/installcheck.sh (diff) | |
download | git-permalink-0f689438635d3a1c4cbf9cc1e62b69a72e642c68.tar.gz git-permalink-0f689438635d3a1c4cbf9cc1e62b69a72e642c68.tar.xz |
aux/workflow/assert-manpages.sh: Get input languages and en files as arguments
Diffstat (limited to 'aux')
-rwxr-xr-x | aux/workflow/assert-manpages.sh | 83 |
1 files changed, 36 insertions, 47 deletions
diff --git a/aux/workflow/assert-manpages.sh b/aux/workflow/assert-manpages.sh index 55f9b58..8a3c497 100755 --- a/aux/workflow/assert-manpages.sh +++ b/aux/workflow/assert-manpages.sh @@ -3,7 +3,7 @@ set -eu TLD="$(cat aux/tld.txt)" IN_PLACE=false -while getopts 'n:m:i' flag; do +while getopts 'l:n:m:i' flag; do case "$flag" in n) PROJECT="$OPTARG" @@ -14,6 +14,9 @@ while getopts 'n:m:i' flag; do i) IN_PLACE=true ;; + l) + LANGS="$OPTARG" + ;; *) exit 2 ;; @@ -28,8 +31,9 @@ assert_arg() { fi } -assert_arg "${PROJECT:-}" '-n PROJECT' +assert_arg "${PROJECT:-}" '-n PROJECT' assert_arg "${MAILING_LIST:-}" '-m MAILING_LIST' +assert_arg "${LANGS:-}" '-l LANGS' EXPECTED_EN="$(mktemp)" @@ -179,50 +183,35 @@ Komentoj kaj diskutoj EOF -# -# This assumes that the naming convention of the manpage files is: -# a-name.$lang.[0-9] -# -# Having extra periods in the middle or at the end would violate this -# assumption, and the code below won't work. -# -# shellcheck disable=2044 -for f in $(find doc -type f -name '*.[0-9]'); do - LINES="$(wc -l "$f" | cut -d\ -f1)" - if [ "$LINES" = 1 ] && grep -Eq '^\.so man.+$' "$f"; then - continue - fi - - if [ ! -s "$f" ]; then - continue - fi - - lang="$(echo "$f" | cut -d. -f2)" - case "$lang" in - en) - EXPECTED="$EXPECTED_EN" - ;; - pt) - EXPECTED="$EXPECTED_PT" - ;; - fr) - EXPECTED="$EXPECTED_FR" - ;; - eo) - EXPECTED="$EXPECTED_EO" - ;; - *) - printf 'Unsupported lang: %s\n' "$lang" >&2 - exit 2 - ;; - esac - - if ! tail -n "$(wc -l < "$EXPECTED")" "$f" | diff - "$EXPECTED"; then - echo "Missing metadata at the end of \"$f\" file" - if [ "$IN_PLACE" = true ]; then - cat "$EXPECTED" >> "$f" - else - exit 1 +for from_f in "$@"; do + for lang in $LANGS; do + case "$lang" in + en) + EXPECTED="$EXPECTED_EN" + ;; + pt) + EXPECTED="$EXPECTED_PT" + ;; + fr) + EXPECTED="$EXPECTED_FR" + ;; + eo) + EXPECTED="$EXPECTED_EO" + ;; + *) + printf 'Unsupported lang: %s\n' "$lang" >&2 + exit 2 + ;; + esac + + f="$(echo "$from_f" | sed "s/\.en\./.$lang./")" + if ! tail -n "$(wc -l < "$EXPECTED")" "$f" | diff - "$EXPECTED"; then + echo "Missing metadata at the end of \"$f\" file" + if [ "$IN_PLACE" = true ]; then + cat "$EXPECTED" >> "$f" + else + exit 1 + fi fi - fi + done done |