diff options
Diffstat (limited to 'aux/workflow')
-rwxr-xr-x | aux/workflow/commonmark.sh | 14 | ||||
-rwxr-xr-x | aux/workflow/l10n.sh | 56 | ||||
-rwxr-xr-x | aux/workflow/public.sh | 18 |
3 files changed, 56 insertions, 32 deletions
diff --git a/aux/workflow/commonmark.sh b/aux/workflow/commonmark.sh index 2333f5d..b196867 100755 --- a/aux/workflow/commonmark.sh +++ b/aux/workflow/commonmark.sh @@ -1,7 +1,7 @@ #!/bin/sh set -eu -while getopts 'N:o:r:w:' flag; do +while getopts 'N:o:r:w:L:' flag; do case "$flag" in N) PROJECT_UC="$OPTARG" @@ -15,6 +15,9 @@ while getopts 'N:o:r:w:' flag; do w) OUT_FILE="$OPTARG" ;; + L) + THE_LANG="$OPTARG" + ;; *) exit 2 ;; @@ -32,20 +35,23 @@ assert_arg() { assert_arg "${PROJECT_UC:-}" '-N PROJECT_UC' assert_arg "${OUTDIR:-}" '-o OUTDIR' assert_arg "${IN_FILE:-}" '-i IN_FILE' +assert_arg "${THE_LANG:-}" '-L THE_LANG' if [ -z "${OUT_FILE:-}" ]; then OUT_FILE="${IN_FILE%.md}.html" fi +OUT="$OUTDIR/$OUT_FILE" +mkdir -p "$(dirname "$OUT")" pandoc \ --toc \ --highlight-style pygments \ --toc-depth=2 \ -s \ - --metadata title="$PROJECT_UC - ${IN_FILE%.md}" \ - --metadata lang=en \ + --metadata title="$PROJECT_UC - ${IN_FILE%%.*}" \ + --metadata "lang=$THE_LANG" \ -r commonmark \ -w html \ -H aux/workflow/favicon.html \ - < "$IN_FILE" > "$OUTDIR/$OUT_FILE" + < "$IN_FILE" > "$OUT" diff --git a/aux/workflow/l10n.sh b/aux/workflow/l10n.sh index e1fd3bb..89f2a6e 100755 --- a/aux/workflow/l10n.sh +++ b/aux/workflow/l10n.sh @@ -1,6 +1,8 @@ #!/bin/sh set -eu +mkdir -p doc/po + LANGS= while getopts 'l:' flag; do case "$flag" in @@ -18,33 +20,39 @@ if [ -z "$LANGS" ]; then exit 2 fi -end="\033[0m" -yellow="\033[0;33m" -manpage() { - from_f="$1" - for l in $LANGS; do - to_f="$(echo "$from_f" | sed "s/\.en\./.$l./")" +po() { + format="$1" + from_f="$2" + to_f="$3" + lang="$4" + po4a-updatepo -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v --previous + po4a-translate -M UTF-8 -f "$format" -m "$from_f" -p "doc/po/$lang.po" -v -L UTF-8 -l "$to_f" -k 0 >&2 +} +for from_f in "$@"; do + for lang in $LANGS; do + to_f="$(echo "$from_f" | sed "s/\.en\./.$lang./")" printf 'Generating %s...\n' "$to_f" - OUT="$(mktemp)" - po4a-updatepo -f man -m "$from_f" -p "doc/po/$l.po" - po4a-translate -f man -m "$from_f" -p "doc/po/$l.po" -l "$to_f" -k 0 -v 2>&1 | tee "$OUT" >&2 - if ! grep -qF ' is 100% translated (' "$OUT"; then - printf "\n\t${yellow}WARNING${end}!\n Missing translations for %s\n\n" "$to_f" >&2 - fi + case "$from_f" in + *.en.[1-9].in) + po man "$from_f" "$to_f" "$lang" + ;; + *.en.md|*.en.msg) + po text "$from_f" "$to_f" "$lang" + ;; + *) + echo "Unsupported file format: $from_f" >&2 + exit 2 + ;; + esac done -} +done -for f in "$@"; do - case "$f" in - *.en.[1-9].in) - mkdir -p doc/po - manpage "$f" - ;; - *) - echo "Unsupported file format: $f" >&2 - exit 2 - ;; - esac +end="\033[0m" +yellowb="\033[1;33m" +for lang in $LANGS; do + if LANG=POSIX msgfmt --statistics "doc/po/$lang.po" 2>&1 | grep translated; then + printf "\n\t${yellowb}WARNING${end}!\n Missing translations for %s\n\n" "doc/po/$lang.po" >&2 + fi done diff --git a/aux/workflow/public.sh b/aux/workflow/public.sh index ef89d07..be32ac1 100755 --- a/aux/workflow/public.sh +++ b/aux/workflow/public.sh @@ -2,7 +2,7 @@ set -eu PROJECT_UC= -while getopts 'n:N:m:o:' flag; do +while getopts 'n:N:m:o:l:' flag; do case "$flag" in n) PROJECT="$OPTARG" @@ -16,6 +16,9 @@ while getopts 'n:N:m:o:' flag; do o) OUTDIR="$OPTARG" ;; + l) + LANGS="$OPTARG" + ;; *) exit 2 ;; @@ -41,12 +44,19 @@ fi mkdir -p "$OUTDIR" sh aux/workflow/TODOs.sh -N "$PROJECT_UC" -n "$PROJECT" -m "$MAILING_LIST" -o "$OUTDIR" -sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r README.md -w index.html +sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r README.md -w index.html -Len if [ -f CHANGELOG.md ]; then - sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r CHANGELOG.md + sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r CHANGELOG.md -Len +fi +if [ -n "${LANGS:-}" ]; then + for lang in $LANGS; do + sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r "README.$lang.md" -w "$lang/index.html" -L "$lang" + if [ -f CHANGELOG.md ]; then + sh aux/workflow/commonmark.sh -N "$PROJECT" -o "$OUTDIR" -r "CHANGELOG.$lang.md" -w "$lang/CHANGELOG.html" -L "$lang" + fi + done fi sh aux/ci/report.sh -n "$PROJECT" -o "$OUTDIR" - cp aux/workflow/favicon.svg aux/workflow/favicon.png "$OUTDIR" |