#!/bin/sh
#
#  Send a mail message to users on a distribution list.  The message header is
#  altered mainly to allow error messages to be returned to the list maintainer.
#  This script should be setuid to one of sendmail's trusted users.
#
#  Usage: put an entry into /usr/lib/aliases in one of the following forms:
#
#	list-name: "|/usr/local/lib/distribute list-name user1 user2 ..."
#	list-name: "|/usr/local/lib/distribute list-name :include:pathname"
#
if [ $# -lt 2 ]
then
	echo Usage: $0 list-name user1 user2 ...
	exit 64
fi

dlist=$1
dusers=""
shift

#  gather distribution list usernames
for i in $*
do
	case $i in
	:include:*)
		file=`expr $i : ':include:\(.*\)'`
		if [ -f $file ]
		then
			dusers="$dusers `cat $file`"
		else
			echo $i: No such file or directory
			exit 64
		fi
		;;
	*)	dusers="$dusers $i"
		;;
	esac
done

#  adjust headers of incoming message
sed -e '1,/^$/s/^$/EOH\
/'					|
sed -e '/^$/,$b'			\
    -e '/^From /d'			\
    -e '/^Via:/s//Original-Via:/'	\
    -e '/^Sender:/s//Original-Sender:/'	\
    -e '/^Acknowledge-To:/d'		\
    -e '/^Return-Receipt-To:/d'		\
    -e "/^EOH$/s//Sender: $dlist-request/" |
/usr/lib/sendmail -f$dlist-request $dusers
