aboutsummaryrefslogtreecommitdiff
path: root/doc/manpages.sh
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2021-08-06 16:31:13 -0300
committerEuAndreh <eu@euandre.org>2021-08-06 16:31:13 -0300
commit7f440566936bfd5c52e3dc0655d8c44943ece083 (patch)
treec02fbb02834d27a9a2468689975e975903d1f61d /doc/manpages.sh
parentsrc/gistatic.c: trim_newline() => strtrim(), trim more chars and a sequence o... (diff)
downloadgistatic-7f440566936bfd5c52e3dc0655d8c44943ece083.tar.gz
gistatic-7f440566936bfd5c52e3dc0655d8c44943ece083.tar.xz
mv aux/workflow/manpages.sh doc/manpages.sh
Diffstat (limited to 'doc/manpages.sh')
-rwxr-xr-xdoc/manpages.sh68
1 files changed, 68 insertions, 0 deletions
diff --git a/doc/manpages.sh b/doc/manpages.sh
new file mode 100755
index 0000000..5c83a37
--- /dev/null
+++ b/doc/manpages.sh
@@ -0,0 +1,68 @@
+#!/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