#!/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