#!/bin/sh

PACKAGE_DIR="/var/packages/${SYNOPKG_PKGNAME}"
PKG_APP_PATH="${PACKAGE_DIR}/target/ui"
PKG_INDEXDB_PATH="${PACKAGE_DIR}/target/indexdb"
APP_PATH="/usr/syno/synoman/webman/3rdparty/$SYNOPKG_PKGNAME"

DSM_INDEX_ADD="/usr/syno/bin/pkgindexer_add"
DSM_INDEX_DEL="/usr/syno/bin/pkgindexer_del"
SYNO_SERVICE_TOOL="/usr/syno/sbin/synoservice"  

SYSTEM_WEBAPI_DIR="/usr/syno/synoman/webapi"
PACKAGE_WEBAPI_DIR="${PACKAGE_DIR}/target/ui/webapi"
PACKAGE_API_FILE="VideoStation.api"

SYNODTVBIN="${PACKAGE_DIR}/target/bin/synodtv"

CreateWebapiLink()
{
	ln -sf ${PACKAGE_WEBAPI_DIR}/${PACKAGE_API_FILE} ${SYSTEM_WEBAPI_DIR}/${PACKAGE_API_FILE}
	ln -sf ${PACKAGE_WEBAPI_DIR} ${SYSTEM_WEBAPI_DIR}/${SYNOPKG_PKGNAME}
}

RemoveWebapiLink()
{
	rm -rf ${SYSTEM_WEBAPI_DIR}/${PACKAGE_API_FILE}
	rm -rf ${SYSTEM_WEBAPI_DIR}/${SYNOPKG_PKGNAME}
}

start()
{
	#check_and_update_db_recover
	${PACKAGE_DIR}/target/scripts/sql.sh

	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicFirmwares.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicFirmwares.sh start $PACKAGE_DIR
	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicModules.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicModules.sh start $PACKAGE_DIR
	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/ModulesInsertRemove.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/ModulesInsertRemove.sh start $PACKAGE_DIR

	CreateWebapiLink
	if [ -n "$SYNOPKG_PKG_STATUS" ]; then
		/usr/syno/bin/synoindex_package.sh enable $SYNOPKG_PKGNAME
		# create @video folder and service link
		${SYNO_SERVICE_TOOL} --setshare video
		# index help and add help to dsm
		${DSM_INDEX_ADD} ${PKG_APP_PATH}/index.conf ${PKG_INDEXDB_PATH}/appindexdb
		${DSM_INDEX_ADD} ${PKG_APP_PATH}/helptoc.conf ${PKG_INDEXDB_PATH}/helpindexdb
	
		if [ "START" == "$SYNOPKG_PKG_STATUS" ] || [ "INSTALL" == "$SYNOPKG_PKG_STATUS" ]; then
			${PACKAGE_DIR}/target/bin/synovideostation > /dev/null 2>&1
		fi
	fi
	${PACKAGE_DIR}/scripts/S86synovideoindexd.sh start
	${PACKAGE_DIR}/scripts/S86synovideometadatad.sh start
	# synodtv daemon
	${SYNODTVBIN} start
	if [ -n "$SYNOPKG_PKG_STATUS" ]; then
		${PACKAGE_DIR}/scripts/ReloadDTVStreamingPath.sh add &
	fi
}

stop()
{
	${PACKAGE_DIR}/scripts/S86synovideoindexd.sh stop
	${PACKAGE_DIR}/scripts/S86synovideometadatad.sh stop

	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicFirmwares.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicFirmwares.sh stop $PACKAGE_DIR
	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicModules.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/SymbolicModules.sh stop $PACKAGE_DIR
	[ -e "${PACKAGE_DIR}/target/scripts/KernelScripts/ModulesInsertRemove.sh" ] && ${PACKAGE_DIR}/target/scripts/KernelScripts/ModulesInsertRemove.sh stop $PACKAGE_DIR

	# synodtv daemon
	${SYNODTVBIN} stop
	if [ -n "$SYNOPKG_PKG_STATUS" ]; then
		/usr/syno/bin/synoindex_package.sh disable $SYNOPKG_PKGNAME
		${DSM_INDEX_DEL} ${PKG_APP_PATH}/index.conf ${PKG_INDEXDB_PATH}/appindexdb
		${DSM_INDEX_DEL} ${PKG_APP_PATH}/helptoc.conf ${PKG_INDEXDB_PATH}/helpindexdb
		
		if [ "UPGRADE" != "$SYNOPKG_PKG_STATUS" ]; then
			${PACKAGE_DIR}/scripts/ReloadDTVStreamingPath.sh delete &
		fi
		RemoveWebapiLink
	fi
}

case $1 in
	start)
		# start routine
		start

		exit 0
	;;
	stop)
		stop
		exit 0
	;;
	status)
		if [ -e ${APP_PATH} ]; then
			exit 0
		else
			exit 1
		fi
	;;
	killall)
        ;;
	log)
		exit 0
	;;
esac

