#!/bin/bash

#
# addmailuser.sh  
#
# (c) 2003 Dave Kliczbor (maligree@gmx.de)
# Version 0.1 (2003-12-29)
#
# Adds a virtual mail domain to the courier userdb.
# You need virtual users set up according to
# http://da.andaka.org/Doku/courier-vmaildir.html
#

PATH=/usr/sbin:/usr/bin:/bin

VMAILNAME="vmail"
VMAILUSER="mail"
VMAILGROUP="mail"
VMAILDIR="/var/mail"
COURIERCONFIGDIR="/etc/courier"
COURIERESMTPACCEPTMAILFORDIR="$COURIERCONFIGDIR/esmtpacceptmailfor.dir"
COURIERHOSTEDDOMAINSDIR="$COURIERCONFIGDIR/hosteddomains"
DOMAINCONFIG="$COURIERCONFIGDIR/vmail/config"
DOMAINPATHPREFIX="domains"
DOMAIN="$1"

if [ `whoami` != "root" ] 
then 
	echo "Error: whoami said you're not root. You're `whoami`"
	exit 1
fi

if [ -r $DOMAINCONFIG ]
then
	source $DOMAINCONFIG
else
	echo "Error: $DOMAINCONFIG not found."
	exit 2
fi

if [ -z "$DOMAIN" ]
then
	echo "Error: Not enough arguments."
	echo "Usage: $0 <domain>"
	exit 3
fi

mkdir -p "$COURIERESMTPACCEPTMAILFORDIR"
if [ -z `grep -e "^$DOMAIN\$" "$COURIERESMTPACCEPTMAILFORDIR/$VMAILNAME"` ] 
then
	echo "$DOMAIN" >>"$COURIERESMTPACCEPTMAILFORDIR/$VMAILNAME"
	echo "Added $DOMAIN to $COURIERESMTPACCEPTMAILFORDIR/$VMAILNAME"
else
	echo "$DOMAIN already exists in $COURIERESMTPACCEPTMAILFORDIR/$VMAILNAME"
fi

mkdir -p "$COURIERHOSTEDDOMAINSDIR"
if [ -z `grep -e "^$DOMAIN\$" "$COURIERHOSTEDDOMAINSDIR/$VMAILNAME"` ]
then
	echo "$DOMAIN" >>"$COURIERHOSTEDDOMAINSDIR/$VMAILNAME"
        echo "Added $DOMAIN to $COURIERHOSTEDDOMAINSDIR/$VMAILNAME"
else
        echo "$DOMAIN already exists in $COURIERHOSTEDDOMAINSDIR/$VMAILNAME"
fi

echo "Creating $VMAILDIR/$DOMAINPATHPREFIX/$DOMAIN"
su "$VMAILUSER" -c "mkdir -p $VMAILDIR/$DOMAINPATHPREFIX/$DOMAIN"

echo "Refreshing Courier databases..."
makehosteddomains
makeacceptmailfor
makesmtpaccess

