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

# customized info for different package
UPGRADE_FILE="/tmp/mailplus_server.upgrade"
UPDATER="/var/packages/MailPlus-Server/target/bin/updater"
PRIVATE_LOCATION="/var/packages/MailPlus-Server/target"
VOLUME=`/usr/bin/readlink ${PRIVATE_LOCATION} | /usr/bin/cut -d '/' -f2`
MAIL_LOG_FOLDER="/var/packages/MailPlus-Server/target/var/aggr_log"
MAIL_MIGRATION_FOLDER="/var/packages/MailPlus-Server/target/var/migration_data"
ALIAS_BKP_FOLDER="/var/packages/MailPlus-Server/target/etc/alias_bkp"
SPAMASSASSIN_FOLDER="/var/packages/MailPlus-Server/target/etc/spamassassin"
SA_UPDATE_DB_FOLDER="/var/packages/MailPlus-Server/target/var/spamassassin"
SA_UPDATE_DB_FOLDER_BACKUP_NAME="spamassassin_update_db"
BACKUP_DIR="/${VOLUME}/@tmp/mailplus_server"
CHOWN_DIR_LIST="/usr/syno/etc/packages/MailPlus-Server /var/packages/MailPlus-Server/target/etc/opendkim"
ACTIVEDB_DUMP_FILE="${PRIVATE_LOCATION}/mailplus_server.active_list.dump"

## Chown of backup dir
chown -R MailPlus-Server:MailPlus-Server ${BACKUP_DIR}

mkdirAndChown()
{
	local path=$1
	mkdir ${path} 2>/dev/null
	chown MailPlus-Server:MailPlus-Server ${path}
}

mv "${BACKUP_DIR}/aggr_log" ${MAIL_LOG_FOLDER}
mv "${BACKUP_DIR}/migration_data" ${MAIL_MIGRATION_FOLDER}
mv "${BACKUP_DIR}/alias_bkp" ${ALIAS_BKP_FOLDER}
mv ${BACKUP_DIR}/spamassassin/* ${SPAMASSASSIN_FOLDER}

if [ -d "${BACKUP_DIR}/${SA_UPDATE_DB_FOLDER_BACKUP_NAME}" ]; then
	mv "${BACKUP_DIR}/${SA_UPDATE_DB_FOLDER_BACKUP_NAME}" "${SA_UPDATE_DB_FOLDER}"
fi

if [ -e "${BACKUP_DIR}/mailplus_server.active_list.dump" ]; then
	mv "${BACKUP_DIR}/mailplus_server.active_list.dump" ${ACTIVEDB_DUMP_FILE}
fi

rm -fr ${BACKUP_DIR}

## Chown dir
for dir in ${CHOWN_DIR_LIST}; do
	chown -R MailPlus-Server:MailPlus-Server ${dir}
done

## create associated dierctories
CreatePreBuildDir

if [ -e ${UPDATER} ] && [ -e ${UPGRADE_FILE} ] ; then
	OLD_PACKAGE_VER=`get_key_value "${UPGRADE_FILE}" "old_version"`
	VERSION_DOT_NUM=`echo "$OLD_PACKAGE_VER" | awk 'BEGIN {FS="."} {print NF}'`
	if [ ${VERSION_DOT_NUM} -eq 2 ]; then
		MAJOR_VERSION=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\1/'`
		MINOR_VERSION=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\2/'`
		BUILD_NUMBER=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\3/'`
		${UPDATER} -M ${MAJOR_VERSION} -m ${MINOR_VERSION} -v ${BUILD_NUMBER}
	else
		MAJOR_VERSION=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\1/'`
		MINOR_VERSION=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\2/'`
		MAINTENANCE_NUM=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\3/'`
		BUILD_NUMBER=`echo ${OLD_PACKAGE_VER} | sed 's/^\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\)[.-]\([0-9]*\).*/\4/'`
		${UPDATER} -M ${MAJOR_VERSION} -m ${MINOR_VERSION} -t ${MAINTENANCE_NUM} -v ${BUILD_NUMBER}
	fi
fi

# general routine
rm -f ${UPGRADE_FILE}

exit 0
