diff options
Diffstat (limited to 'aux/workflow/assert-manpages.sh')
-rwxr-xr-x | aux/workflow/assert-manpages.sh | 90 |
1 files changed, 46 insertions, 44 deletions
diff --git a/aux/workflow/assert-manpages.sh b/aux/workflow/assert-manpages.sh index d609685..b26c7a4 100755 --- a/aux/workflow/assert-manpages.sh +++ b/aux/workflow/assert-manpages.sh @@ -2,8 +2,10 @@ set -eu TLD="$(cat aux/tld.txt)" +. aux/lib.sh + 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 +16,9 @@ while getopts 'n:m:i' flag; do i) IN_PLACE=true ;; + l) + LANGS="$OPTARG" + ;; *) exit 2 ;; @@ -28,11 +33,12 @@ 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)" +EXPECTED_EN="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EN" @@ -59,7 +65,7 @@ Browse bugs online .UE . .IP \(bu -.UR https://$TLD/$PROJECT/ +.UR https://$TLD/$PROJECT/en/ Homepage .UE . .IP \(bu @@ -68,7 +74,7 @@ Comments and discussions .UE . EOF -EXPECTED_PT="$(mktemp)" +EXPECTED_PT="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_PT" @@ -95,7 +101,7 @@ Veja os bugs online .UE . .IP \(bu -.UR https://$TLD/$PROJECT/ +.UR https://$TLD/$PROJECT/pt/ Página inicial .UE . .IP \(bu @@ -104,7 +110,7 @@ Comentários e discussões .UE . EOF -EXPECTED_FR="$(mktemp)" +EXPECTED_FR="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_FR" @@ -133,7 +139,7 @@ en ligne .UE . .IP \(bu -.UR https://$TLD/$PROJECT/ +.UR https://$TLD/$PROJECT/fr/ Page d'accueil .UE . .IP \(bu @@ -142,7 +148,7 @@ Commentaires et discussions .UE . EOF -EXPECTED_EO="$(mktemp)" +EXPECTED_EO="$(mkstemp)" cat <<EOF | sed 's|-|\\-|g' >> "$EXPECTED_EO" @@ -169,7 +175,7 @@ Foliumu misfunkcioj rete .UE . .IP \(bu -.UR https://$TLD/$PROJECT/ +.UR https://$TLD/$PROJECT/eo/ Ĉefpaĝo .UE . .IP \(bu @@ -179,39 +185,35 @@ Komentoj kaj diskutoj EOF -# 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 - pt) - EXPECTED="$EXPECTED_PT" - ;; - fr) - EXPECTED="$EXPECTED_FR" - ;; - eo) - EXPECTED="$EXPECTED_EO" - ;; - *) - EXPECTED="$EXPECTED_EN" - ;; - 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 |