diff options
author | EuAndreh <eu@euandre.org> | 2021-09-01 17:08:26 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2021-09-01 17:08:26 -0300 |
commit | ee254d8d5a21bc425018511dbccef02531a6e463 (patch) | |
tree | b4b62c0036179d060c5252faec5bb9db25cc4d03 /doc | |
parent | aux/: Update (diff) | |
download | remembering-ee254d8d5a21bc425018511dbccef02531a6e463.tar.gz remembering-ee254d8d5a21bc425018511dbccef02531a6e463.tar.xz |
mv aux/workflow/manpages.sh doc/manpages.sh
Diffstat (limited to 'doc')
-rwxr-xr-x | doc/manpages.sh | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/doc/manpages.sh b/doc/manpages.sh new file mode 100755 index 0000000..d0d19ae --- /dev/null +++ b/doc/manpages.sh @@ -0,0 +1,66 @@ +#!/bin/sh +set -eu + +while getopts 'iuHo:p:' flag; do + case "$flag" in + i) + ACTION=install + ;; + u) + ACTION=uninstall + ;; + H) + ACTION=html + ;; + o) + OUTDIR="$OPTARG" + ;; + p) + MANPREFIX="$OPTARG" + ;; + *) + exit 2 + ;; + esac +done +shift $((OPTIND - 1)) + +assert_arg() { + if [ -z "$1" ]; then + echo "Missing $2" >&2 + exit 2 + fi +} + +assert_arg "${ACTION:-}" '-[iuH] for choosing action' + +for f in "$@"; do + l="$(echo "$f" | awk -F. '{print $(NF-1)}')" + n="$(echo "$f" | awk -F. '{print $NF}')" + case "$ACTION" in + html) + assert_arg "${OUTDIR:-}" '-o OUTDIR' + to_name="$(basename "${f%.$l.$n}.$n.html")" + mkdir -p "$OUTDIR/$l" + pandoc -s -r man -w html --metadata "lang=$l" < "$f" > "$OUTDIR/$l/$to_name" + ;; + install) + assert_arg "${MANPREFIX:-}" '-p MANPREFIX' + to_name="$(basename "${f%.$l.$n}.$n")" + mkdir -p "$MANPREFIX/$l/man$n" "$MANPREFIX/man$n" + cp "$f" "$MANPREFIX/$l/man$n/$to_name" + ln -fs "../en/man$n/$to_name" "$MANPREFIX/man$n/$to_name" + ;; + uninstall) + assert_arg "${MANPREFIX:-}" '-p MANPREFIX' + to_name="$(basename "${f%.$l.$n}.$n")" + rm -f \ + "$MANPREFIX/$l/man$n/$to_name" \ + "$MANPREFIX/man$n/$to_name" + ;; + *) + echo "Bad ACTION: $ACTION" + exit 1 + ;; + esac +done |