#! /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.