aboutsummaryrefslogtreecommitdiff
path: root/aux/workflow
diff options
context:
space:
mode:
Diffstat (limited to 'aux/workflow')
-rwxr-xr-xaux/workflow/commonmark.sh14
-rwxr-xr-xaux/workflow/l10n.sh56
-rwxr-xr-xaux/workflow/public.sh18
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"