#!/bin/sh

. /var/packages/SynologyDrive/scripts/pkg_utils

PACKAGE_LOC="${CLOUD_STATION_PACKAGE}"
PACKAGE_ENABLED="${PACKAGE_LOC}/enabled"
OLD_UPGRADE_FILE="/tmp/cloudstation.upgrade"
DSM_MAJOR_VERSION=`get_key_value /etc.defaults/VERSION majorversion`
DSM_MINOR_VERSION=`get_key_value /etc.defaults/VERSION minorversion`

CreateUILink()
{
	ln -sf /var/packages/${PACKAGE_NAME}/target/drive /usr/syno/synoman/webman/3rdparty/${PACKAGE_NAME}-Drive
	ln -sf /var/packages/${PACKAGE_NAME}/target/sharesync/ui /usr/syno/synoman/webman/3rdparty/${PACKAGE_NAME}-ShareSync
}

RemoveUILink()
{
	rm -f /usr/syno/synoman/webman/3rdparty/${PACKAGE_NAME}-Drive
	rm -f /usr/syno/synoman/webman/3rdparty/${PACKAGE_NAME}-ShareSync
}

start()
{
	rm -f "${OLD_UPGRADE_FILE}"

	# start services
	${CSTN_CLOUD_CONTROL} service --start
	CreateUILink

	# migration runs at post-start
	/var/packages/${PACKAGE_NAME}/target/bin/cloud-migration --migration_poststart

	# start ShareSync
	${SHARESYNC_PKG_BIN_PATH}/srvctl --start

	return 0;
}

stop()
{
	RemoveUILink
	${CSTN_CLOUD_CONTROL} service --stop

	# stop ShareSync
	${SHARESYNC_PKG_BIN_PATH}/srvctl --stop

	return 0;
}

restart()
{
	stop
	start

	return 0;
}

case $1 in
	start)
		# check enabled
		if [ ! -f $PACKAGE_ENABLED ]; then
			echo "Package is not enabled from package center."
			exit 0;
		fi

		# start routine
		logger -p 3 "CS: [start-stop-status]: Synology Drive start..."
		start
		exit $?
	;;
	stop)
		logger -p 3 "CS: [start-stop-status]: Synology Drive stop..."
		stop
		exit $?
	;;
	restart)
		logger -p 3 "CS: [start-stop-status]: Synology Drive restart..."
		restart
		exit $?
	;;
	status)
		ret=`${CSTN_CLOUD_CONTROL} service --status`

		# not running
		if [ "$ret" = "disabled" ] || [ "$ret" = "portconflict" ] || [ "$ret" = "homedisabled" ] || [ "$ret" = "upgradefail" ] || [ "$ret" = "dbnewer" ] || [ "$ret" = "dbunexist" ] || [ "$ret" = "error" ] ; then
			# check ShareSync status
			${SHARESYNC_PKG_BIN_PATH}/srvctl --status
			if [ $? = 0 ]; then
				exit 0
			else
				exit 3
			fi
		fi

		# running
		if [ "$ret" = "enabled" ] || [ "$ret" = "initializing" ] || [ "$ret" = "updating" ] || [ "$ret" = "checking" ] || [ "$ret" = "done" ] || [ "$ret" = "moving_db" ] ; then
			exit 0
		fi

		# unknown
		exit 4
	;;
	killall)
        ;;
	log)
		exit 0
	;;
esac

