
export LANG="C"
export LC_ALL="C"

exit_code=0
err_utils_list=""

restore_utils_dir="/usr/lib/plesk-9.0"

check_status()
{
	local status="$1"
	local progname="$2"

	if [ "$status" -ne "0" ]; then
		exit_code=255
		err_utils_list="$err_utils_list $progname"
	fi
}

# This should be replaced with a cycle over all available restoration utilities
# residing in a designated directory
[ -x "$restore_utils_dir/mailsrv_conf_init" ] && \
	$restore_utils_dir/mailsrv_conf_init && check_status "$?" "mailsrv_conf_init"

# restore mailboxes
[ -x "$restore_utils_dir/mail_mailbox_restore" ] && \
	$restore_utils_dir/mail_mailbox_restore && check_status "$?" "mail_mailbox_restore"

# restore passwords
[ -x "$restore_utils_dir/mail_auth_dump" ] && \
	$restore_utils_dir/mail_auth_dump && check_status "$?" "mail_auth_dump"

# restore MTA databases and configs
[ -x "$restore_utils_dir/mailsrv_entities_dump" ] && \
	$restore_utils_dir/mailsrv_entities_dump && check_status "$?" "mailsrv_entities_dump"

# restore aliases
[ -x "$restore_utils_dir/mail_admin_aliases" ] && \
	$restore_utils_dir/mail_admin_aliases && check_status "$?" "mail_admin_aliases"

## Handlers restore begin
# spamassassin restore
[ -x "$restore_utils_dir/mail_spam_restore" ] && \
	$restore_utils_dir/mail_spam_restore && check_status "$?" "mail_spam_restore"

# autoresponder restore
[ -x "$restore_utils_dir/mail_responder_restore" ] && \
	$restore_utils_dir/mail_responder_restore && check_status "$?" "mail_responder_restore"

# drweb restore
[ -x "$restore_utils_dir/mail_drweb_restore" ] && \
	$restore_utils_dir/mail_drweb_restore && check_status "$?" "mail_drweb_restore"

# kav restore
[ -x "$restore_utils_dir/mail_kav_restore" ] && \
	$restore_utils_dir/mail_kav_restore && check_status "$?" "mail_kav_restore"

# spf restore
[ -x "$restore_utils_dir/mail_spf_restore" ] && \
	$restore_utils_dir/mail_spf_restore && check_status "$?" "mail_spf_restore"

# dk restore
[ -x "$restore_utils_dir/mail_dk_restore" ] && \
	$restore_utils_dir/mail_dk_restore && check_status "$?" "mail_dk_restore"
## Handlers restore end

# Mailman restore if installed
if [ -x "$restore_utils_dir/mailman_lists_dump" -a -f "/usr/lib/mailman/Mailman/mm_cfg.py" ]; then
	$restore_utils_dir/mailman_lists_dump && check_status "$?" "mailman_lists_dump"
fi

[ -x "$restore_utils_dir/mail_grey_restore" ] && \
	$restore_utils_dir/mail_grey_restore && check_status "$?" "mail_grey_restore"

if [ "$exit_code" -ne "0" ]; then
	echo "Errors occured in mail restore procedure"
	echo "Some utilities was exited with errors:"

	for util in $err_utils_list; do
		echo "  $util"
	done

	echo ""
	echo "See log for details"
fi

exit $exit_code
