#!/bin/sh
. /usr/syno/bin/jsoncmd
. /var/packages/MailPlus-Server/scripts/backup/util.sh

TEMP_BACKUP_RESTORE_DIR=${SYNOPKG_PKGPATH}/target/backup_restore_temp
ACTIVATE_MEMBER_UPGRADE_VERSION="1.1.0-0200"
RESTORE_UPGRADE_ACTIVATE_MEMBER_DB_200_FLAG="${SYNOPKG_PKGPATH}/target/restore_upgrade_activate_member_db_0200"

# user/group/policy
USERGROUPPOLICY_UPDATE_VERSION="1.3.0-0338"
UPGRADE_USERGROUPPOLICY_FLAG="/tmp/mailplus_server.upgrade_to_usergrouppolicy_version"

# mcp
MCP_RULE_UPGRADE_VERSION="1.3.0-0348"
MCP_RULE_UPGRADE_FLAG="/tmp/mailplus_server.upgrade_mcp_rule"

# dkim sign
DKIM_SIGN_UPGRADE_VERSION="1.3.0-350"
DKIM_SIGN_UPGRADE_FLAG="/tmp/mailplus_server.upgrade_dkim_sign"

# smtp: separate hostname and domain name
DOMAIN_NAME_UPGRADE_VERSION="1.3.0-329"
DOMAIN_NAME_UPGRADE_FLAG="/tmp/mailplus_server.upgrade_domain_name"

# upgrade related setting for multiple domains
MULTIPLE_DOMAINS_UPGRADE_VERSION="2.0.0-0457"
UPGRADE_RELATED_SETTINGS_FOR_MULTIPLE_DOMAINS_FLAG="/tmp/mailplus_server.upgrade_related_settings_for_multiple_domain"

# upgrade disclaimer setting
DISCLAIMER_UPGRADE_VERSION="2.0.2-0534"
UPGRADE_DISCLAIMER_FLAG="/tmp/mailplus_server.upgrade_disclaimer_flag"

# upgrade disclaimer setting
DISCLAIMER_UPGRADE_VERSION_V2="2.0.4-0543"
UPGRADE_DISCLAIMER_FLAG_V2="/tmp/mailplus_server.upgrade_disclaimer_flag_v2"

main()
{
	local import_path=$(jget "${SYNOPKG_BKP_INPUT}" ".temp_path")
	if [ $? -ne 0 ]; then
		jerr "bad parameters"
	    exit 1
	fi

	"${SYNOPKG_PKGPATH}/target/bin/syno_config_backup_restore" myDSLoginCheck
	if [ $? -eq 0 ]; then
		"${SYNOPKG_PKGPATH}/target/bin/syno_config_backup_restore" getOnlineLicenseCheck
		if [ $? -ne 0 ]; then
			jerrstr "error" "license_network_check_tip"
			exit 1
		fi
	fi

	#create restore flag
	touch "${SYNOPKG_PKGPATH}/target/restore_flag"

	#copy files and configs from backup/restore framework dir to ${SYNOPKG_PKGPATH}/target/backup_restore_temp
	rm -rf "${TEMP_BACKUP_RESTORE_DIR}"
	mkdir -p "${TEMP_BACKUP_RESTORE_DIR}"
	/bin/cp -arf "$import_path"/* "${TEMP_BACKUP_RESTORE_DIR}"

	#Deal with upgrade
	version_compare "${SYNOPKG_PKGVER_ORG}" ${ACTIVATE_MEMBER_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${RESTORE_UPGRADE_ACTIVATE_MEMBER_DB_200_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${USERGROUPPOLICY_UPDATE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${UPGRADE_USERGROUPPOLICY_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${MCP_RULE_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${MCP_RULE_UPGRADE_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${DKIM_SIGN_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${DKIM_SIGN_UPGRADE_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${DOMAIN_NAME_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${DOMAIN_NAME_UPGRADE_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${MULTIPLE_DOMAINS_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${UPGRADE_RELATED_SETTINGS_FOR_MULTIPLE_DOMAINS_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${DISCLAIMER_UPGRADE_VERSION}
	if [ $? -eq 0 ]; then
		touch "${UPGRADE_DISCLAIMER_FLAG}"
	fi

	version_compare "${SYNOPKG_PKGVER_ORG}" ${DISCLAIMER_UPGRADE_VERSION_V2}
	if [ $? -eq 0 ]; then
		touch "${UPGRADE_DISCLAIMER_FLAG_V2}"
	fi

	exit 0
}

main

