#!/bin/sh

INSTALL_DIR=`pwd`
SOFTWARE=dovecot
VERSION=1.2.12

function cleanupandexit {
  echo "Installation failed.  Look above for errors."
  cd $INSTALL_DIR
  rm -rf ${SOFTWARE}-${VERSION}
  userdel -r dovecot
  exit 1
}

useradd -s /bin/false dovecot
tar xzf ${SOFTWARE}-${VERSION}.tar.gz 
cd $INSTALL_DIR/${SOFTWARE}-${VERSION}

mkdir -p /opt/${SOFTWARE}/current/var/run

./configure --prefix=/opt/${SOFTWARE}/current

make || cleanupandexit
make install-strip || cleanupandexit

cd /opt/${SOFTWARE}
mv current ${SOFTWARE}-${VERSION}
ln -s ${SOFTWARE}-${VERSION} current

if [ ! -f /opt/${SOFTWARE}/current/etc/dovecot.conf ]; then
  echo "Installing default configuration file"
  cp ${INSTALL_DIR}/conf/dovecot-${VERSION}.conf /opt/${SOFTWARE}/current/etc/dovecot.conf
fi

if [ ! -s /service/dovecot ]; then
  if [ -d ${INSTALL_DIR}/../djb/daemontools/services ]; then
    echo "Copying service from local repository"
    cp -pr ${INSTALL_DIR}/../djb/daemontools/services/service.dovecot .
    cp -p ${INSTALL_DIR}/../djb/daemontools/services/fixPermissions.sh .
  else
    echo "Retrieving service from Contegix repository"
    svn export http://repository.contegix.com/software/djb/daemontools/services/service.dovecot
    wget http://repository.contegix.com/software/djb/daemontools/services/fixPermissions.sh
  fi
  
  sh ./fixPermissions.sh service.dovecot vpopmail nofiles qmaill nofiles
  rm -f fixPermissions.sh

  mkdir service
  mv service.dovecot service/dovecot
  ln -s /opt/dovecot/service/dovecot /service/
  sleep 5
fi

svstat /service/dovecot /service/dovecot/log
tail /service/dovecot/log/main/current | tai64nlocal

echo ""
echo "Dovecot Installation Complete."

