#!/bin/sh -

USER="${USER-$LOGNAME}"
GROUP="${GROUP-`groups | sed 's/ .*//'`}"

ocfg="	u)	own='$USER';;
	g)	own=:'$GROUP';;
	ug)	own='$USER':'$GROUP';;
	s)	own='$SUDO_USER';;
	O)	own='$USER_O';;
	U)	own='$USER_U';;
	t)	own='`ttyuser`';;
	r)	own=root:root;;
	k)	own=kinzler:kinzler;;
	o)	own=oracle:uoracle;;
	w)	own=webinfuser:webinfgroup;;
	a)	own=appinfuser:appinfgroup;;"

mcfg='	f)	mod=644;;
	F)	mod=600;;
	d)	mod=755;;
	D)	mod=700;;'

# ch - execute both chown and chmod, with abbreviations
# Steve Kinzler, steve@kinzler.com, Jun 16
# https://kinzler.com/me/home.html#unix

case "$#" in
[012])	cat <<EOF 1>&2
usage: $0 own mod file ...
own may be a chown argument, abbreviation or - (no change).
Recognized abbreviations for own:
`echo "$ocfg" | sed 's/)//; s/own=//; s/;;$//'`
mod may be a chmod argument, abbreviation or - (no change).
Recognized abbreviations for mod:
`echo "$mcfg" | sed 's/)//; s/mod=//; s/;;$//'`
EOF
	exit 1;;
esac

eval '
case "$1" in
""|-)	own=-;;
'"$ocfg"'
*)	own="$1";;
esac'; shift

eval '
case "$1" in
""|-)	mod=-;;
'"$mcfg"'
*)	mod="$1";;
esac'; shift

case "$own" in
''|-)	;;
*)	echo chown "$own" "$@"
	     chown "$own" "$@";;
esac
case "$mod" in
''|-)	;;
*)	echo chmod "$mod" "$@"
	     chmod "$mod" "$@";;
esac
