#!/bin/sh -
PATH="$PATH":/bin:/usr/bin; export PATH

owner=root.source
USER=${USER-$LOGNAME}
Owner=$USER.$USER

# fixmod - run a recursive chmod to standardize file and directory permissions
# Steve Kinzler, steve@kinzler.com, Nov 04/Jan 06
# https://kinzler.com/me/home.html#unix

chown=
case "$1" in
-[oO])	chown=$1; shift;;
esac

case "$#,$1" in
*,-h)	echo 'usage: fixmod [ -o | -O ] [ find_args ]' 1>&2
	echo "	-o	also chown $owner" 1>&2
	echo "	-O	also chown $Owner" 1>&2; exit 1;;
0,*)	set .;;
esac

# find's "-true" not always available
case "$chown" in	# must be run post-set for some reason?!
-o)	chown="( -exec chown $owner {} ; -o -exec true ; )";;
-O)	chown="( -exec chown $Owner {} ; -o -exec true ; )";;
esac
exec find "$@" $chown \( -type d \( -exec chmod a+rx,u+w,go-w {} \; -o \
				    -exec true \; \) \) -o \
		      \( -type f    -exec chmod  a+r,u+w,go-w {} \; \)
