diff options
author | EuAndreh <eu@euandre.org> | 2022-01-18 11:40:47 -0300 |
---|---|---|
committer | EuAndreh <eu@euandre.org> | 2022-01-18 14:02:59 -0300 |
commit | 47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2 (patch) | |
tree | 3d162596d874b4f775da12c843ad3918b593f713 /doc/manpages.sh | |
parent | Initial empty commit (diff) | |
download | td-47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2.tar.gz td-47bfd2ed8c3219e79f8974a8fc2ac9265ed91bd2.tar.xz |
First commit, now with a clean history
Diffstat (limited to 'doc/manpages.sh')
-rwxr-xr-x | doc/manpages.sh | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/doc/manpages.sh b/doc/manpages.sh new file mode 100755 index 0000000..983a83a --- /dev/null +++ b/doc/manpages.sh @@ -0,0 +1,76 @@ +#!/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 \ + --toc \ + --toc-depth=2 \ + -s \ + -r man \ + -w html \ + -H aux/workflow/favicon.html \ + -H aux/workflow/style.css \ + --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 |