#!/bin/sh

symlink=

try()
{
	if test ! -d "$1" -a -x "$1"; then
		if test ! -r "$1"; then
			echo mprwhich: error: cannot read "$1" >&2
			exit
		fi
		case "$symlink" in
		"")	echo "$1"
			exit 0;;
		esac
		f=`file "$1"`
		case "$f" in
		*"symbolic link"*)
			l=`echo "$f" | awk '{print $NF}'`
			case "$l" in \`*\') l=`echo "$l" | tr -d "'\140"`;; esac	# remove trash chars `'
			case "$l" in
			/*)	aout="$l";;
			*)	aout=`echo "$1" | awk -F/ '{OFS="/"}{$NF=""; print}'`"$l";;
			esac
			exec mprwhich "$aout"
			echo mprwhich: error: cannot exec self >&2
			exit 1;;
		*)	echo "$1"
			exit 0;;
		esac
	fi
}

for arg in "$@"; do
	case "$1" in
	-s)	symlink=true;;
	--)	shift; break;;
	*)	break;;
	esac
	shift
done

case "$#" in
1)	;;
*)	echo usage: mprwhich [-s] program >&2
	exit 1;;
esac

case "$1" in
/*|./*)	try "$1"
	echo mprwhich: error: "$1" is not executable >&2
	exit 1;;
esac

for d in `echo "$PATH" | sed 's/:/ /g'`; do
	try "$d/$1"
done

echo mprwhich: error: cannot find "$1" in "$PATH" >&2
exit 1
