#!/bin/sh

### Domains ###
# /vol/data/domains should contain the configuration parameters for myhostname and virtual_alias_domains
cat /vol/data/domains /etc/postfix/main.cf.part > /etc/postfix/main.cf

### Users ###

# copy users db to dovecot config
cp /vol/data/users /etc/dovecot/users
chown dovecot:dovecot /etc/dovecot/users

# copy users db to postfix config, but without passwords
cat /vol/data/users | cut -d':' -f1 | perl -pe 's/(.*)/\1 ./' > /etc/postfix/users
postmap /etc/postfix/users

### Aliases ###
# copy aliases to postfix config
cd /etc/postfix
cat /vol/data/aliases.d/*.list > aliases
postmap aliases
# copy blacklist to postfix config
cat /vol/data/aliases.d/*.deny > deny
postmap deny

### Reload ###
postfix reload
dovecot reload

### Sieve ###
# copy users sieve to mail
cd /vol/data/sieve.d
for user in * ; do
  mkdir -p /vol/mail/${user}
  chown vmail:vmail /vol/mail/${user} ${user}
  echo "Testing ${user}'s sieve script for compilation errors..."
  sievec ${user} -d - > /dev/null
  if [ $? -eq 0 ]; then
    echo "No errors detected."
    cp -p ${user} /vol/mail/${user}/.dovecot.sieve
  else
    echo "Compilation errors detected in ${user}'s sieve script. Please correct any errors and run $(basename $0) again."
  fi
done