#!/bin/sh set -eu while getopts 'iup:' flag; do case "$flag" in i) ACTION=install ;; u) ACTION=uninstall ;; p) MANDIR="$OPTARG" ;; *) exit 2 ;; esac done shift $((OPTIND - 1)) assert_arg() { if [ -z "$1" ]; then echo "Missing $2" >&2 exit 2 fi } assert_arg "${ACTION:-}" '[-iu] 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 install) assert_arg "${MANDIR:-}" '-p MANDIR' to_name="$(basename "${f%."$l"."$n"}.$n")" mkdir -p "$MANDIR/$l/man$n" "$MANDIR/man$n" cp "$f" "$MANDIR/$l/man$n/$to_name" ln -fs "../en/man$n/$to_name" \ "$MANDIR/man$n/$to_name" ;; uninstall) assert_arg "${MANDIR:-}" '-p MANDIR' to_name="$(basename "${f%."$l"."$n"}.$n")" rm -f \ "$MANDIR/$l/man$n/$to_name" \ "$MANDIR/man$n/$to_name" ;; *) echo "Bad ACTION: $ACTION" exit 2 ;; esac done