#!/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() { if [ -z "$1" ]; then echo "Missing $2 argument" >&2 exit 2 fi } assert "${ACTION:-}" 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 "${OUTDIR:-}" 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 "${MANPREFIX:-}" 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 "${MANPREFIX:-}" 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