#!/bin/sh
#
# Since FreeBSD does not supply a user for running an MTA in a sandbox
# by default, use user 'exim', adding it if it does not exist.  Even
# if FreeBSD supplied an MTA user, it's neglected to do so for so long
# that every sandboxed MTA under the sun uses its own user, so user
# 'exim' should probably be used forever.
#
# Modern FreeBSD systems already have a group mail.
#
# $FreeBSD: ports/mail/exim/pkg-install,v 1.5 2002/09/12 10:08:58 sheldonh Exp $
#

PKG_PREFIX=${PKG_PREFIX:=/}
user=mail
group=mail

PW=/usr/sbin/pw

if [ "$2" = "PRE-INSTALL" ]; then
	if ! /usr/bin/grep -q "^${group}:" < /etc/group; then
		$PW groupadd ${group} -g 12
	fi

	if ! /usr/bin/id ${user} > /dev/null; then
		$PW useradd -g ${group} -n ${user} -u 12
	fi	

	if ! /usr/bin/id ${user} > /dev/null; then
		echo "Exim requires user ${user}.  Please update your system." 1>&2
		exit 1
	fi
	if ! /usr/bin/grep -q "^${group}:" < /etc/group; then
		echo "Exim requires group ${group}.  Please update your system." 1>&2
		exit 1
	fi

	# This is naughty, since the directory we create won't be removed along
	# with Exim.  However, logfiles should probably stick around after Exim
	# is removed, until the administrator is sure he doesn't want them
	# any more.
	#

	mkdir -p /var/spool/exim
	mkdir -p /var/spool/exim/db
	mkdir -p /var/spool/exim/input
	mkdir -p /var/spool/exim/msglog
	chown -R ${user}:${group} /var/spool/exim
	chmod -R 0750 /var/spool/exim

	mkdir -p /var/log/exim
	chown ${user}:${group} /var/log/exim

	mkdir -p /etc/virtual
	chown ${user}:${group} /etc/virtual
	chmod 755 /etc/virtual

	mkdir -p /var/spool/virtual
	chown ${user}:${group} /var/spool/virtual
	chgrp 1777 /var/spool/virtual

        for i in blacklist_domains whitelist_from use_rbl_domains bad_sender_hosts blacklist_senders whitelist_domains whitelist_hosts whitelist_senders; do
                touch /etc/virtual/$i;
                chown mail:mail /etc/virtual/$i;
                chmod 644 /etc/virtual/$i;
        done

        mkdir -p /etc/virtual/usage
        chown mail:mail /etc/virtual/usage
        chmod 700 /etc/virtual/usage

        if [ ! -e /etc/virtual/limit ]; then
                echo "0" > /etc/virtual/limit
                chmod 644 /etc/virtual/limit
                chown mail:mail /etc/virtual/limit
        fi
fi 

if [ "$2" = "POST-INSTALL" ]; then
	TCWD=`pwd`
	cd /usr/sbin
	ln -sf exim sendmail
	chmod u+s exim
	cd $TCWD

        /usr/bin/openssl req -x509 -newkey rsa:1024 -keyout /etc/exim.key -out /etc/exim.cert -days 9999 -nodes -config /etc/exim.cert_config
fi
