if [ "$1" = "" -o "$2" = "" ]; then
	echo "usage: $0 packagename rev" > /dev/tty
	exit 1
fi
PKGNAME=`echo $1 | tr '[a-z]' '[A-Z]'`
REV=`echo $2 | tr '[a-z]' '[A-Z]'`
GOOD_FORMAT=`echo $REV | grep "^[A-Z][0-9]$"`
if [ "`echo $PKGNAME | wc -c | awk '{ print $1 }'`" -gt 9 ]; then	
	echo "\007PKGNAME cannot be longer than 8 characters." > /dev/tty
	echo "usage: $0 packagename rev" > /dev/tty
	exit 1
elif [ "$GOOD_FORMAT" = "" ]; then
	echo "\007rev must be in the format [A-Z][0-9], i.e. A1." > /dev/tty
	echo "usage: $0 packagename rev" > /dev/tty
	exit 1
fi
if [ "`find . -print | wc -l | awk '{ print $1 }'`" -eq 1 ]; then
	echo "${BELL}This directory tree is empty" > /dev/tty
	exit 1
fi
while :; do
	echo "Would you like to inlcude directory entries? [y/n]: \c" > /dev/tty
	DO_DIRS=`line < /dev/tty | tr '[a-z]' '[A-Z]'`
	case $DO_DIRS in
		Y|N)
			break;;
		*)
			echo "\007Invalid response.\n"
			sleep 1;;
	esac
done
IFS="
"
PROC="-"
echo ": ************** $PKGNAME $REV release ****************\n:"
for file in `ls -lR | egrep -v '^total|^$'`; do
	MAJ_MIN="-"
	TYPE_FIELD=`echo $file | cut -c1`
	if [ "$TYPE_FIELD" = "-" ]; then
		FILENAME=`echo $file | awk '{ print $9 }'`
	elif [ "$TYPE_FIELD" = "d" ]; then
		if [ "$DO_DIRS" = Y ]; then
			FILENAME=`echo $file | awk '{ print $9 }'`
		else
			continue
		fi
	elif [ "$TYPE_FIELD" = "c" -o "$TYPE_FIELD" = "b" ]; then
		MAJ_MIN=`echo $file | awk '{ print $5 $6 }' | sed 's/[a-z]*//'`
		FILENAME=`echo $file | awk '{ print $10 }'`
	elif [ "`echo $file | grep '^\.\/.*:$'`" != "" ]; then
		BASE=`echo $file | cut -d":" -f1 | sed 's/^\.//'`
		continue
	else
		echo "Unknown type for line:\n${file}\n"
		continue
	fi
	FILENAME="${BASE}/${FILENAME}"
	OWNER=`echo $file | awk '{ print $3 }'`
	OWNER=`grep "^${OWNER}:" /etc/passwd | cut -d":" -f3`
	GROUP=`echo $file | awk '{ print $4 }'`
	GROUP=`grep "^${GROUP}:" /etc/group | cut -d":" -f3`
	PERM_OWN=`echo $file | cut -c2-4`
	PERM_GRP=`echo $file | cut -c5-7`
	PERM_OTH=`echo $file | cut -c8-10`
	NEWPERM=""
	PROC="-"
	DEST="-"
	UFIELD="-"
	GFIELD="-"
	for PERM in PERM_OWN PERM_GRP PERM_OTH; do
		PERMTEMP=`eval echo \\$$PERM`
		case $PERMTEMP in
			rwx)
				eval $PERM=7;;
			rw-)
				eval $PERM=6;;
			r-x)
				eval $PERM=5;;
			r--)
				eval $PERM=4;;
			-wx)
				eval $PERM=3;;
			-w-)
				eval $PERM=2;;
			--x)
				eval $PERM=1;;
			---)
				eval $PERM=0;;
			??s)
				if [ $PERM = PERM_OWN ]; then
					UFIELD=u
				elif [ $PERM = PERM_GRP ]; then
					GFIELD=g
				else
					echo "***Permission error on line:\n$file\n"
					continue 2
				fi
				case $PERMTEMP in
					rws)
						eval $PERM=7;;
					r-s)
						eval $PERM=5;;
					-ws)
						eval $PERM=3;;
					--s)
						eval $PERM=1;;
					*)
						echo "***Permission error on line:\n$file\n"
						continue 2;;
				esac;;
			*)
				echo "***Invalid permission on line:\n$file\n"
				continue 2;;
		esac
		NEWPERM=`eval echo ${NEWPERM}\\$${PERM}`
	done
	echo "$FILENAME	${TYPE_FIELD}${UFIELD}${GFIELD}$NEWPERM $OWNER $GROUP	$MAJ_MIN	$PKGNAME	$PROC"
done
echo ":"
