#! /bin/sh -e prog=${0##*/} fail () { echo >&2 "$prog: $1"; exit 2; } usage () { echo "usage: $prog [CONF]"; } bogus=nil while getopts "h" opt; do case $opt in h) usage; exit 0 ;; *) bogus=t ;; esac done shift $(( $OPTIND - 1 )) case $# in 0) op=query ;; 1) op=set conf=$1 ;; *) bogus=t ;; esac case $bogus in t) usage >&2; exit 2 ;; esac cd "$HOME/.disorder" case $op in query) if ! [ -L passwd ]; then link=bogus else link=$(readlink passwd) fi case $link in passwd.*) conf=${link#passwd.} ;; *) fail "\`~/.disorder/passwd' not a link to \`passwd.CONF'" ;; esac echo "$conf" ;; set) if ! [ -f "passwd.$conf" ]; then fail "no config \`passwd.$conf'"; fi ln -sf "passwd.$conf" passwd ;; esac