#!/bin/ksh
###############################################################################
# sendproc - a front end to the MH send command
#
# Gregory F. March (march@nynexst.com)
#
#------------------------------------------------------------------------------
#
# sendproc provides the following additions to the MH send command:
#
#	Addition of an X-Face: mail header
#	Addition of an Fcc: mail header
#	Addition of a .signature
#
# All of the above can be turned off. The default is on with the filespecs
# set below. The files used can be changed via the command line as well.
#
# Search for the line containing "CONFIGURE" to see what you can change.
#
# NOTE: I guarantee nothing.
#
###############################################################################

# CONFIGURE: Location of the MH send program
SEND=/home/bonehead/local/bin/send

# CONFIGURE: Location of the internal .sig file
INTERNAL=$HOME/.signature.internal

# CONFIGURE: Location of the external .sig file
INTERNAL=$HOME/.signature.external

# CONFIGURE: You may want to change these...

XFACE=1			# Yes, we have a face file
XFACEFN=$HOME/.face	# and this is where it is.

SIG=1			# Yes, send a signature

FCC=1			# Yes, we want to save outbound mail
FCCFN=outbox		# and this is where we will save it

TMPFILE=/tmp/mh-send.$$	# Temp mail file
ARGN=0			# argument counter

while [ $# -gt 0 ]	# Check out args...
do
    case $1 in
	-help)		print ""
			print "sendproc accepts:"
			print "    -noxface"
			print "    -xface facefile"
			print "    -nofcc"
			print "    -fcc fccfile"
			print "    -(nosig)nature"
			print "    -(sig)nature sigfile"
			print ""
			print "Defaults:"
			print "    -xface $HOME/.face -fcc outbox"
			print ""
			print "The default for the .signature depends on 'friends'. See the sendproc script."
			print ""
			print "sendproc also accepts 'send' arguments:"
			print ""

			$SEND -help

			exit 1			;;
	-noxface)	XFACE=0			;;
	-xface)		if [ -f "$2" ]
			then
			    shift
			    XFACEFN=$1
			else
			    print sendproc: "$2" is not a valid file
			    exit 1
			fi			;;
	-nosig*)	SIG=0			;;
	-sig*)		SIG=2

			if [ -f "$2" ]
			then
			    shift
			    SIGFN=$1
			else
			    print sendproc: "$2" is not a valid file
			    exit 1
			fi			;;
	-nofcc)		FCC=0			;;
	-fcc)		if [ -f "$2" ]
			then
			    shift
			    FCCFN=$1
			else
			    print sendproc: "$2" is not a valid file
			    exit 1
			fi			;;

	# Just record all args we don't know about and pass them to
	# the send program

	*)		args[$ARGN]=$1
			let ARGN=$ARGN+1	;;
    esac

    shift	# next arg
done

DRAFT=${args[$ARGN-1]}	# ASSUMPTION: last arg is the draft file

cat $DRAFT | (		# Build draft file extensions

# Face stuff...

if [ $XFACE -eq 1 ]		# X-Face: stuff
then
    if [ -f "$XFACEFN" ]
    then
        print -n X-Face:
        cat $XFACEFN
    fi
fi

if [ $FCC -eq 1 ]		# Fcc: stuff
then
    print "Fcc: $FCCFN"
fi

IFS_ORIG=$IFS

IFS=
SIGFLAG=1			# Default sig is 'internal'

# CONFIGURE: You probably want to change this list...

while read line
do
    echo "$line"
    case $line in
	"") break 			;; # Blank line after the subject...
	To:*march*)      SIGFLAG="0"    ;; # friends...
	To:*marty*)      SIGFLAG="0"    ;; # friends...
	To:*leggiero*)   SIGFLAG="0"    ;; # friends...
	To:*jason*)      SIGFLAG="0"    ;; # friends...
	To:*mary*)       SIGFLAG="0"    ;; # friends...
	To:*rrad*)       SIGFLAG="0"    ;; # friends...
	To:*sheppard*)   SIGFLAG="0"    ;; # friends...
	To:*balick*)     SIGFLAG="0"    ;; # friends...
	To:*zhigang*)    SIGFLAG="0"    ;; # friends...
	To:*atul*)       SIGFLAG="0"    ;; # friends...
	To:*wittner*)    SIGFLAG="0"    ;; # friends...
	To:*gen*)        SIGFLAG="0"    ;; # friends...
	To:*clare*)      SIGFLAG="0"    ;; # friends...
	To:*amyliv*)     SIGFLAG="0"    ;; # friends...
	To:*sanders*)    SIGFLAG="0"    ;; # friends...
	To:*laxmi*)      SIGFLAG="0"    ;; # friends...
	To:*rsmith*)     SIGFLAG="0"    ;; # friends...
	To:*aispeech*)   SIGFLAG="0"    ;; # friends...
	To:*jrs*)        SIGFLAG="0"    ;; # friends...
	To:*sara*)       SIGFLAG="0"    ;; # friends...
	To:*dina*)       SIGFLAG="0"    ;; # friends...
	To:*ben*)        SIGFLAG="0"    ;; # friends...
	To:*dav*)        SIGFLAG="0"    ;; # friends...
	To:*kimsilv*)    SIGFLAG="0"    ;; # friends...
	To:*lisar*)      SIGFLAG="0"    ;; # friends...
	To:*jules*)      SIGFLAG="0"    ;; # friends...
	To:*ken*)        SIGFLAG="0"    ;; # friends...
	To:*ashokk*)     SIGFLAG="0"    ;; # friends...
	To:*pitrelli*)   SIGFLAG="0"    ;; # friends...
	To:*smehta*)     SIGFLAG="0"    ;; # friends...
	To:*srs*)        SIGFLAG="0"    ;; # friends...
	To:*asadi*)      SIGFLAG="0"    ;; # friends...
	To:*hcl*)        SIGFLAG="0"    ;; # friends...
	To:*nancyk*)     SIGFLAG="0"    ;; # friends...
	To:*em*)         SIGFLAG="0"    ;; # friends...
	To:*weather*)    SIGFLAG="1"	;; # internal weather mailing list
	To:*c++*)        SIGFLAG="1"	;; # internal c++ mailing list
	To:*nasanews*)   SIGFLAG="1"	;; # internal nasanews mailing list
	To:*recog*)      SIGFLAG="0"	;; # internal speech recog mailing list
	To:*tam*)        SIGFLAG="0"	;; # internal "Talk About Money" list
	To:*synth*)      SIGFLAG="0"	;; # internal speech synth mailing list
	To:*@* | To:*!*) SIGFLAG="2"	;; # External mail?
    esac
done

IFS=$IFS_ORIG

cat	# the message

case $SIG in
    0)	break					;;
    1)	case $SIGFLAG in
            "0") break				;;
            "1") cat $INTERNAL			;;
            "2") cat $EXTERNAL			;;
        esac					;;
    2)	cat $SIGFN				;;
esac

) > $TMPFILE

# Could I do this with a -nodraft option to send?

rm -f $DRAFT
mv $TMPFILE $DRAFT

$SEND ${args[*]}	# send new draft
