aboutsummaryrefslogtreecommitdiff
path: root/doc/manpages.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-09-01 17:08:26 -0300
committerEuAndreh <eu@euandre.org>2021-09-01 17:08:26 -0300
commitee254d8d5a21bc425018511dbccef02531a6e463 (patch)
treeb4b62c0036179d060c5252faec5bb9db25cc4d03 /doc/manpages.sh
parentaux/: Update (diff)
downloadremembering-ee254d8d5a21bc425018511dbccef02531a6e463.tar.gz
remembering-ee254d8d5a21bc425018511dbccef02531a6e463.tar.xz
mv aux/workflow/manpages.sh doc/manpages.sh
Diffstat (limited to 'doc/manpages.sh')
-rwxr-xr-xdoc/manpages.sh66
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