#! /bin/sh
# $Header: /home/jerry/.bin/RCS/rmf,v 1.3 92/08/09 23:26:34 jerry mh_contrib $
###	rmf - front-end to MH rmf command; tries to stop MH from trashing symlinks
##
##	THE rmf IN MH 6.7.2 (AND PROBABLY OTHERS) WON'T CHECK TO SEE WHETHER A
##	"FOLDER" IS REALLY A SYMBOLIC LINK TO ANOTHER FOLDER.  IT REMOVES ALL
##	THE MESSAGES FROM THE FOLDER THAT THE LINK POINTS TO, THEN GIVES UP!
##	THIS FRONT-END TESTS BEFORE IT STARTS THE REAL rmf; IF YOU'RE TRYING
##	TO REMOVE A SYMLINK, IT TELLS YOU AND ABORTS.
##
#	PUT THIS SCRIPT SOMEWHERE IN YOUR $PATH AHEAD OF THE MH BINARY DIRECTORY.
#
#	TABSTOPS IN THIS CODE ARE SET AT 4.
#
#	USE AT YOUR OWN RISK.  SEEMS TO WORK, BUT IT'S YOUR RESPONSIBILITY!
#	PLEASE TELL ME ABOUT BUGS AND FIXES: Jerry Peek, jerry@ora.com

mhdir=/usr/local/mh		# WHERE MH BINARIES LIKE folder AND rmf LIVE

echo "NOTE: Using front-end $0." 1>&2	# SHOW THIS SCRIPT'S NAME

# GRAB FOLDER NAME:
for arg
do
	case "$arg" in
	[@+]*)
		if [ -z "$folder" ]
		then
			folder="$arg"
		else
			echo "`basename $0` aborting: '$arg'?  Only one folder at a time." 1>&2
			exit 1
		fi
		;;
	esac
done

# GET PATH TO FOLDER.  (DEFAULTS TO CURRENT FOLDER.)
folpath="`$mhdir/mhpath $folder`" || exit 1
# NOT ALL testS TEST SYMLINKS.  FAKE IT; TEST ls -l FOR "lrwx..." OUTPUT:
lsout="`/bin/ls -ld $folpath`" || exit 1
case "$lsout" in
"")	echo "`basename $0` aborting: '/bin/ls -ld $folpath' bombed?" 1>&2;;
l*)	echo "`basename $0` aborting: $folpath is a symbolic link!?!" 1>&2;;
*)	exec $mhdir/rmf ${1+"$@"} ;; # WORKAROUND FOR "$@" PROBLEMS IN SOME SHELLS
esac
exit 1	# ALWAYS AN ERROR IF GET HERE:  exec FAILED OR WRONG case MATCHED.
