diff options
author | EuAndreh <eu@euandre.org> | 2021-06-19 09:06:23 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-06-19 09:06:23 -0300 |
commit | b81c6437937fb594629d627334cc7e1fc2135507 (patch) | |
tree | f35bf3461a2a9da766067ff8affda06827b0a08e /aux/workflow/manpages.sh | |
parent | aux/workflow/assert-manpages.sh: Mark as executable (diff) | |
download | git-permalink-b81c6437937fb594629d627334cc7e1fc2135507.tar.gz git-permalink-b81c6437937fb594629d627334cc7e1fc2135507.tar.xz |
Add aux/workflow/manpages.sh to install, uninstall and generate HTML from translated manpages
Diffstat (limited to 'aux/workflow/manpages.sh')
-rwxr-xr-x | aux/workflow/manpages.sh | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/aux/workflow/manpages.sh b/aux/workflow/manpages.sh new file mode 100755 index 0000000..de3cef9 --- /dev/null +++ b/aux/workflow/manpages.sh @@ -0,0 +1,53 @@ +#!/bin/sh +set -eu + +LANGS="$1" +OP="$2" +PREFIX="${3:-}" + +if [ "$OP" = '--update' ]; then + for f in doc/*.en.[1-9]; do + for lang in $LANGS; do + to="$(echo "$f" | sed "s|\.en\.|.$lang.|")" + po4a-updatepo -f man -m "$f" -p "doc/$lang.po" + printf 'Translating %s...\n' "$to" >&2 + OUT="$(po4a-translate -f man -m "$f" -p "doc/$lang.po" -l "$to" -k 0 -v 2>&1)" + echo "$OUT" >&2 + if ! echo "$OUT" | grep -qF ' is 100% translated ('; then + printf "\n WARNING!\n Missing translations for %s\n\n" "$to" >&2 + fi + done + done +else + shift 4 ||: # remove up to '--' + for f in doc/*.en.[1-9]; do + n="${f##*.}" + fileto_name="$(basename "${f%.en.$n}").$n" + for lang in $LANGS en; do + filefrom_name="${f%.en.$n}.$lang.$n" + mandir_name="$PREFIX/$lang/man$n" + htmldir_name="public/$lang/" + case "$OP" in + --install) + mkdir -p "$mandir_name" + $@ < "$filefrom_name" > "$mandir_name/$fileto_name" + mkdir -p "$PREFIX/man$n" + ln -fs "../en/man$n/$fileto_name" "$PREFIX/man$n/$fileto_name" + ;; + --uninstall) + rm -f \ + "$PREFIX/$lang/man$n/$fileto_name" \ + "$PREFIX/man$n/$fileto_name" + ;; + --html) + mkdir -p "$htmldir_name" + $@ < "$filefrom_name" | pandoc -s -r man -w html > "public/$lang/$fileto_name.html" + ;; + *) + echo "Unsupported operation: $OP" + exit 2 + ;; + esac + done + done +fi |