#!/bin/sh -e
#-----------------------------------------------------------------------------
#
# $Sendmail: update_smrsh,v @sm_version@ @sm_date@ @sm_time@ debian Exp $
#
# Update MDA programs used by Sendmail for Debian
#
# Copyright (c) 2002-@SM_CPYRT@ Richard Nelson.  All Rights Reserved.
#
# Notes (to all):
#	* The entries in /etc/mail/smrsh are used by the feature(smrsh) and
#	  sensible-mda.
#
# Notes (to self):
#	*
#
#-----------------------------------------------------------------------------
set -e;

# flag used to indicate a dataset has been moved, may need another update
changed=0;
new=1;

def_progs="\
	@libexecdir@/mail.local \
	@libexecdir@/sensible-mda \
	/usr/bin/vacation \
	/usr/bin/procmail \
	/usr/bin/maildrop \
	/usr/bin/deliver \
	";

# Path to other sendmail helpers
if [ -x ./update_sendmail ]; then
	sm_path='.';
elif [ -x $(dirname $0)/update_sendmail ]; then
	sm_path=$(dirname $0);
else
	sm_path=@datadir@/sendmail;
	fi;
# Bring in sendmail.conf for the network definitions
if [ ! -f @sysconfdir@/mail/sendmail.conf ]; then
	if [ -x $sm_path/update_conf ]; then
		$sm_path/update_conf;
		fi;
	fi;
if [ -f @sysconfdir@/mail/sendmail.conf ]; then
	. @sysconfdir@/mail/sendmail.conf;
	fi;
if [ "$HANDS_OFF" != 'No' ]; then
	exit 0;
	fi;

echo " ";
echo "Checking for installed MDAs...";

#------------------------------------------------------------------------------
# /etc/mail/smrsh is where the links to MDAs and authorized forwarding progs
if [ ! -e @sysconfdir@/mail/smrsh ]; then
	changed=1;
	new=1;
	fi;
chown smmta:smmsp @sysconfdir@/mail/smrsh;
chmod 02755 @sysconfdir@/mail/smrsh;

#------------------------------------------------------------------------------
# Iterate over the default list of programs and create any missing items
for file in $def_progs; do
	ppath=$(dirname  "$file");
	pname=$(basename "$file");

	# the file doesn't exist, see if we can remove its link
	if [ ! -e $file ]; then

		# let have there own version eh?
		if [ -e @sysconfdir@/mail/smrsh/$pname ]; then
			true;

		# no, if its a danglink symlink, drop it
		elif [ -L @sysconfdir@/mail/smrsh/$pname ]; then
			echo "Removing link for no longer extant program ($pname)";
			rm @sysconfdir@/mail/smrsh/$pname;
			fi;

	# the file exists, see if we need to add its link
	elif [ ! -e @sysconfdir@/mail/smrsh/$pname ]; then
		echo "Adding link for newly extant program ($pname)";
		ln -sf $file @sysconfdir@/mail/smrsh/$pname;
		changed=1;
		fi;
	done;

#------------------------------------------------------------------------------
exit $changed;
