#!/bin/sh

PACKAGE_DEST=$SYNOPKG_PKGDEST
PRIVATE_LOCATION="/var/packages/MailServer/target"
PKG_TEXT_DIR="${PRIVATE_LOCATION}/UI/texts/"

SERVICETOOL="/usr/syno/bin/servicetool"

# links
LIB_SASL2_SRC="/lib/sasl2"
LIB_SASL2_LINK="${PRIVATE_LOCATION}/etc/sasl2"
SASLAUTHD_SRC="/usr/sbin/saslauthd"
SASLAUTHD_LINK="${PRIVATE_LOCATION}/sbin/saslauthd"

#hook
PKG_PRIVATE_DIR="/var/packages/MailServer/target"
PKG_HOOK_DIR="/usr/local/libexec/"
USER_SET_HOOK_DIR="${PKG_HOOK_DIR}user_set/"
USER_DELETE_HOOK_DIR="${PKG_HOOK_DIR}user_delete/"
GROUP_SET_HOOK_DIR="${PKG_HOOK_DIR}group_set/"
GROUP_DELETE_HOOK_DIR="${PKG_HOOK_DIR}group_delete/"
DOMAIN_LEAVE_HOOK_DIR="${PKG_HOOK_DIR}dirsvs_leave/"
DOMAIN_DB_REFRESH_HOOK_DIR="${PKG_HOOK_DIR}dirsvs_db_refresh/"
HOOK_SCRT_DIR="${PRIVATE_LOCATION}/scripts/"
CERT_CHANGE_DIR="${PKG_HOOK_DIR}/certificate/change"

#prepare 2 config file, the 5.0 one doesn't support app privilege
app_privilege_prepare()
{
	local config="/var/packages/MailServer/target/app/config"
	cat ${config} | sed 's/"grantPrivilege":"all","advanceGrantPrivilege":true,//g' > ${config}.5.0
	cp -a ${config} ${config}.5.x
	chmod 644 ${config}.5.0
	chmod 644 ${config}.5.x
}

# creating symbolic link in non-preserved area

# create sasl2 and saslauthd link for smtp
ln -sf ${LIB_SASL2_SRC} ${LIB_SASL2_LINK}
ln -sf ${SASLAUTHD_SRC} ${SASLAUTHD_LINK}

#create hook dir
mkdir -p ${USER_SET_HOOK_DIR}
mkdir -p ${USER_DELETE_HOOK_DIR}
mkdir -p ${GROUP_SET_HOOK_DIR}
mkdir -p ${GROUP_DELETE_HOOK_DIR}
mkdir -p ${DOMAIN_LEAVE_HOOK_DIR}
mkdir -p ${DOMAIN_DB_REFRESH_HOOK_DIR}
mkdir -p ${CERT_CHANGE_DIR}

#link to hook script
ln -sf ${HOOK_SCRT_DIR}/MailServerUserSet.sh ${USER_SET_HOOK_DIR}
ln -sf ${HOOK_SCRT_DIR}/MailServerUserDelete.sh ${USER_DELETE_HOOK_DIR}
ln -sf ${HOOK_SCRT_DIR}/MailServerGroupSet.sh ${GROUP_SET_HOOK_DIR}
ln -sf ${HOOK_SCRT_DIR}/MailServerGroupDelete.sh ${GROUP_DELETE_HOOK_DIR}
ln -sf ${HOOK_SCRT_DIR}/MailServerDirLeave.sh ${DOMAIN_LEAVE_HOOK_DIR}
ln -sf ${HOOK_SCRT_DIR}/MailServerDirRefresh.sh ${DOMAIN_DB_REFRESH_HOOK_DIR}
ln -sf ${PKG_PRIVATE_DIR}/hook/MailServerCertChange.sh ${CERT_CHANGE_DIR}

#set permission
chgrp maildrop "/var/packages/MailServer/target/sbin/postqueue"
chgrp maildrop "/var/packages/MailServer/target/sbin/postdrop"
chmod g+s "/var/packages/MailServer/target/sbin/postqueue" "/var/packages/MailServer/target/sbin/postdrop"

#upgrade
UPGRAGE_FILE="/tmp/mailserver.upgrade"
LOG_DB="/var/packages/MailServer/etc/maillog.db"
UPDATER="/var/packages/MailServer/target/bin/updater"
if [ ! -e ${UPGRAGE_FILE} ] && [ -e ${LOG_DB} ]; then
	${UPDATER} -M 1 -m 0 -v 22
	rm -f ${UPGRAGE_FILE}
	rm -f ${UPDATER}
fi

# add port-forwarding config file
${SERVICETOOL} --install-configure-file --package ${PRIVATE_LOCATION}/etc/mailserver_port

cp -a ${PRIVATE_LOCATION}/conf_pkgcenter "/var/packages/MailServer/conf"

# user data collector
mkdir -p /usr/syno/etc/user.data.conf
mkdir -p /usr/syno/bin/user.data.collector

cp /var/packages/MailServer/scripts/mail_server.config /usr/syno/etc/user.data.conf
cp /var/packages/MailServer/scripts/synouserdata_mail_server /usr/syno/bin/user.data.collector

app_privilege_prepare
exit 0
