#!/bin/bash

INSTANCE=$1

if [ -z "$INSTANCE" ]; then
  echo "Usage: $0 [instance-suffix]"
  echo "Example: $0 2"
  exit 1
fi

if [ -f /etc/rc.d/init.d/cyrus-imapd${INSTANCE} ]; then
  echo "Error: instance '${INSTANCE}' already exists."
  exit 1
fi

ln -s cyrus-imapd /etc/rc.d/init.d/cyrus-imapd${INSTANCE}
ln -s cyrus-imapd /etc/sysconfig/cyrus-imapd${INSTANCE}

cp -a /etc/imapd.conf /etc/imapd${INSTANCE}.conf
perl -pi -e "s#/var/lib/imap\$#/var/lib/imap${INSTANCE}#g" /etc/imapd${INSTANCE}.conf
perl -pi -e "s#/var/spool/imap\$#/var/spool/imap${INSTANCE}#g" /etc/imapd${INSTANCE}.conf

cp -a /etc/cyrus.conf /etc/cyrus${INSTANCE}.conf
for CMD in /usr/lib64/cyrus-imapd/*; do
  CMD=${CMD##*/}
  perl -pi -e "s#/var/lib/imap/#/var/lib/imap${INSTANCE}/#g" /etc/cyrus${INSTANCE}.conf
  perl -pi -e "s#cmd=\"${CMD} #cmd=\"${CMD} -C /etc/imapd${INSTANCE}.conf #g" /etc/cyrus${INSTANCE}.conf
  perl -pi -e "s#cmd=\"${CMD}\"#cmd=\"${CMD} -C /etc/imapd${INSTANCE}.conf\"#g" /etc/cyrus${INSTANCE}.conf
done

mkdir -p /var/lib/imap${INSTANCE}
mkdir -p /var/spool/imap${INSTANCE}
for DIR in /var/lib/imap/*; do
  if [ -d $DIR ]; then
    mkdir -p /var/lib/imap${INSTANCE}/${DIR##*/}
  fi
done

INSTANCE=$INSTANCE /usr/lib64/cyrus-imapd/slack_set_permissions

chkconfig --add cyrus-imapd${INSTANCE}
