cd `pwd`
#FILELIST=./filelist
MASTER=/usr/src/local/release/master.list

IFS="
"
COUNT=1
TOTAL=`egrep -v '^:|NS|\..32|NONE|ROOT|3$' $MASTER | wc -l | awk '{ print $1 }'`
echo "\nProcessing $TOTAL lines:"

for LINE in `egrep -v '^:|NS|\..32|NONE|ROOT|3$' $MASTER`; do
	NAME=`echo $LINE | awk '{ print $1 }'`
	echo "($COUNT of $TOTAL) $NAME: \c"
	if [ $? -ne 0 ]; then
		echo "$NAME: NOT FOUND IN THE MASTER LIST"
		COUNT=`expr $COUNT + 1`
		continue
	fi
	if [ ! -b $NAME -a ! -c $NAME -a ! -d $NAME -a ! -f $NAME ]; then
		echo "$NAME: NOT FOUND"
		COUNT=`expr $COUNT + 1`
		continue
	fi

	FIELD2=`echo $LINE | awk '{ print $2 }'`
	LISTTYPE=`echo $FIELD2 | cut -c1`
	LISTUFIELD=`echo $FIELD2 | cut -c2`
	LISTGFIELD=`echo $FIELD2 | cut -c3`
	LISTPERM=`echo $FIELD2 | cut -c4-6`
	LISTOWNER=`echo $LINE | awk '{ print $3 }'`
	LISTGROUP=`echo $LINE | awk '{ print $4 }'`

	if [ "$LISTTYPE" = b -o $LISTTYPE = c ]; then
		LISTMAJ_MIN=`echo $LINE | awk '{ print $5 }'`
	fi

	chmod $LISTPERM $NAME

	if [ $LISTUFIELD = u ]; then
		chmod u+s $NAME
	else
		chmod u-s $NAME
	fi

	if [ $LISTGFIELD = g ]; then
		chmod g+s $NAME
	else
		chmod g-s $NAME
	fi

	chown $LISTOWNER $NAME

	chgrp $LISTGROUP $NAME

	COUNT=`expr $COUNT + 1`
	echo ok
done
echo "\rDONE"
