#!/bin/sh set -eu while getopts 'iup:' flag; do case "$flag" in i) ACTION=install ;; u) ACTION=uninstall ;; 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:-}" '-[iu] for choosing action' assert_arg "${MANPREFIX:-}" '-p MANPREFIX' for f in "$@"; do l="$(echo "$f" | awk -F. '{print $(NF-1)}')" n="$(echo "$f" | awk -F. '{print $NF}')" case "$ACTION" in install) 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) 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