#!/bin/sh
. /var/packages/MailPlus-Server/target/backend_hook/hookUtils.conf

PACKAGE_DEST=$SYNOPKG_PKGDEST
PROJECT_ROOT="/var/packages/${SYNOPKG_PKGNAME}"
PRIVATE_LOCATION="$PROJECT_ROOT/target"
PKG_TEXT_DIR="${PRIVATE_LOCATION}/UI/texts/"
PKG_LIB_DIR="${PRIVATE_LOCATION}/lib"
SYNOPKG_CONF="${PROJECT_ROOT}/etc/synopkg_conf"

# links
LIB_SASL2_SRC="/lib/sasl2"
LIB_SASL2_LINK="${PRIVATE_LOCATION}/etc/sasl2"
SASLAUTHD_SRC="/usr/sbin/saslauthd"
SASLAUTHD_LINK="${PRIVATE_LOCATION}/sbin/saslauthd"
FEASIBILITY_FILE_DIR="${PRIVATE_LOCATION}/etc/feasibility"
FEASIBILITY_LINK_DIR="/usr/local/share/feasibilitycheck"

#hook
PKG_PRIVATE_DIR="/var/packages/MailPlus-Server/target"
PKG_HOOK_DIR="/usr/local/libexec/"

SYSLOG_DAEMON_SCRIPT="${PRIVATE_LOCATION}/scripts/daemon/syslog.sh"

#maillog utility config
VOLUME=`/usr/bin/readlink ${PRIVATE_LOCATION} | /usr/bin/cut -d'/' -f2`
LOG_CENTER_CONF_DEST_FOLDER="/usr/local/etc/syslog-ng/patterndb.d/synolog/"
MAILPLUS_SERVER_EVENT_LOG_CONF="${LOG_CENTER_CONF_DEST_FOLDER}/mailplus_server_event_log.conf"
VOLUME_MAILPLUS_SERVER_PATH="/${VOLUME}/@MailPlus-Server"
VOLUME_CLAMAV="${VOLUME_MAILPLUS_SERVER_PATH}/clamav"
SHARE_CLAMAV="${PKG_PRIVATE_DIR}/share/clamav"
ROTATE_CONF_DEST_FOLDER="/usr/local/etc/logrotate.d/"
MAILPLUS_SERVER_EVENT_LOG_ROTATE_CONF="${ROTATE_CONF_DEST_FOLDER}/mailplus_server_event_rotate.conf"

# 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}


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

#install maillog utility config file
#syslog-ng config
echo -e "destination d_mailplus_server { file(\"/${VOLUME}/@maillog/MailPlus_Server.log\" owner(\"MailPlus-Server\") group(\"system\") perm(0644) suppress(0) template(\"\$PRIORITY\\\t\$YEAR/\$MONTH/\$DAY \$HOUR:\$MIN:\$SEC\\\t\$MESSAGE\\\n\"));};
filter f_mailplus_server { program(\"^MailPlus-Server\") and level(warn..emerg); };
log { source(s_syno_syslog); filter(f_mailplus_server); destination(d_mailplus_server); };" > ${MAILPLUS_SERVER_EVENT_LOG_CONF}

#logrotated config
echo -e "/${VOLUME}/@maillog/MailPlus_Server.log
{
	size 5M
	missingok
    postrotate
	${SYSLOG_DAEMON_SCRIPT} reload || true
	endscript
}" > ${MAILPLUS_SERVER_EVENT_LOG_ROTATE_CONF}
chown root:root ${MAILPLUS_SERVER_EVENT_LOG_ROTATE_CONF}
chmod 644 ${MAILPLUS_SERVER_EVENT_LOG_ROTATE_CONF}
${SYSLOG_DAEMON_SCRIPT} reload

#use DSM libsynopki.so.6 if version >= 6.1
DSM_MAJOR_VERSION="$(get_key_value /etc.defaults/VERSION majorversion)"
DSM_MINOR_VERSION="$(get_key_value /etc.defaults/VERSION minorversion)"
if [[ "${DSM_MAJOR_VERSION}" -gt 6 ]] || [[ ("${DSM_MAJOR_VERSION}" -eq 6) && ("${DSM_MINOR_VERSION}" -ge 1) ]]; then
	if [[ -e "${PKG_LIB_DIR}/libsynopki.so.6" ]]; then
		mv -f "${PKG_LIB_DIR}/libsynopki.so.6" "${PKG_LIB_DIR}/libsynopki.so.6.bak"
	fi
fi

#reg_volume
mkdir -p "$SYNOPKG_CONF"
echo "[\"$SYNOPKG_PKGDEST_VOL\"]" > "$SYNOPKG_CONF/reg_volume"

#create links
rm -fr ${SPOOL_MAILPLUS}
ln -sfn ${VOLUME_MAILPLUS_SERVER_PATH} ${SPOOL_MAILPLUS}

# clamav
if [ ! -d "${VOLUME_CLAMAV}" ]; then
	mkdir -p "${VOLUME_CLAMAV}"
	chown -R MailPlus-Server:MailPlus-Server "${VOLUME_CLAMAV}"
fi
# move "${SHARE_CLAMAV}" content into "${VOLUME_CLAMAV}"
# "${SHARE_CLAMAV}" contains custom whitelist
mv "${SHARE_CLAMAV}"/* "${VOLUME_CLAMAV}"
rm -rf "${SHARE_CLAMAV}"

exit 0
