HEX
Server: Apache/2.4.63 (Unix)
System: Linux TOMS-220NAS 4.4.302+ #86009 SMP Wed Nov 26 18:19:17 CST 2025 x86_64
User: flavio87 (1026)
PHP: 8.3.27
Disabled: NONE
Upload Files
File: /volume1/@appstore/CMS/scripts/start-stop-status
#!/bin/sh
# Copyright (c) 2000-2013 Synology Inc. All rights reserved.

if [ -z "$SYNOPKG_PKGNAME" ]; then
	SYNOPKG_PKGNAME=CMS
fi

PACKAGE_DIR="/var/packages/${SYNOPKG_PKGNAME}"
PACKAGE_TARGET="${PACKAGE_DIR}/target"
PACKAGE_VAR="${PACKAGE_DIR}/var"
PKG_TOOLS_DIR="${PACKAGE_DIR}/target/tools"
PKG_TOOLS_SYNOCMSGPO="${PKG_TOOLS_DIR}/synocmsgpo"
APP_PATH="/usr/syno/synoman/webman/3rdparty/$SYNOPKG_PKGNAME"

SYNOCMSTASKD="pkg-CMS-synocmstaskd"
SYNOCMSD="pkg-CMS-synocmsd"

DB_FILE="${PACKAGE_VAR}/db/cms_db.sqlite"
DB_LOG_FILE="${PACKAGE_VAR}/db/cmslog_db.sqlite"
DB_NC_FILE="${PACKAGE_VAR}/db/nc_db.sqlite"
DB_TASK_FILE="${PACKAGE_VAR}/db/cmstask_db.sqlite"
DB_TABLE_CREATE_SQL_FILE="${PACKAGE_DIR}/scripts/sql/create_table.sql"
DB_LOG_TABLE_CREATE_SQL_FILE="${PACKAGE_DIR}/scripts/sql/create_log_table.sql"
DB_MSG_TABLE_CREATE_SQL_FILE="${PACKAGE_DIR}/scripts/sql/create_msg_table.sql"
DB_TASK_TABLE_CREATE_SQL_FILE="${PACKAGE_DIR}/scripts/sql/create_task_table.sql"
DB_GPO_VIEW_CREATE_SQL_FILE="${PACKAGE_DIR}/scripts/sql/create_gpo_view.sql"
CRON_JOB_CONF="${PACKAGE_TARGET}/config/CMS.cron"
CRON_JOB_INSTALL_PATH="/etc/cron.d/CMS"

UPDATE_CLIENT_CRED_SCRIPT="${PACKAGE_DIR}/scripts/CMSUpdateCred.sh"

RECOVER_UPDATE_FLAG=/tmp/CMS-recover-update

SYNOSYSTEMCTL=/usr/syno/bin/synosystemctl
CHMOD=/bin/chmod
CHOWN=/bin/chown
FIND=/bin/find
XARGS=/bin/xargs
ECHO=/bin/echo
SQLITE3=/usr/bin/sqlite3
CP=/bin/cp
RM=/bin/rm
LOGGER=/usr/bin/logger
SYNOCMSUTILS=/var/packages/CMS/target/tools/synocmsutils

CreateDBTable()
{
	$SQLITE3 ${DB_FILE} < ${DB_TABLE_CREATE_SQL_FILE}
	$SQLITE3 ${DB_FILE} < ${DB_GPO_VIEW_CREATE_SQL_FILE}
	$SQLITE3 ${DB_LOG_FILE} < ${DB_LOG_TABLE_CREATE_SQL_FILE}
	$SQLITE3 ${DB_NC_FILE} < ${DB_MSG_TABLE_CREATE_SQL_FILE}
	$SQLITE3 ${DB_TASK_FILE} < ${DB_TASK_TABLE_CREATE_SQL_FILE}
	$CHOWN root ${DB_FILE}
	$CHOWN root ${DB_LOG_FILE}
	$CHOWN root ${DB_NC_FILE}
	$CHOWN root ${DB_TASK_FILE}
	$CHMOD 600  ${DB_FILE}
	$CHMOD 600  ${DB_LOG_FILE}
	$CHMOD 600  ${DB_NC_FILE}
	$CHMOD 600  ${DB_TASK_FILE}
}

ChmodExistConfig()
{
	$CHMOD 0644 "${PACKAGE_VAR}/data/unread_notification" >/dev/null 2>&1
	$CHOWN root "${PACKAGE_VAR}/data/unread_notification" >/dev/null 2>&1
	for currDir in $($ECHO "dsinfo" "packages"); do
		$CHMOD 0755 "${PACKAGE_VAR}/$currDir" >/dev/null 2>&1
		$CHOWN root "${PACKAGE_VAR}/$currDir" >/dev/null 2>&1
		$FIND "${PACKAGE_VAR}/$currDir" -type f | $XARGS $CHMOD 0644 >/dev/null 2>&1
		$FIND "${PACKAGE_VAR}/$currDir" -type f | $XARGS $CHOWN root >/dev/null 2>&1
		$FIND "${PACKAGE_VAR}/$currDir" -type d | $XARGS $CHMOD 0755 >/dev/null 2>&1
		$FIND "${PACKAGE_VAR}/$currDir" -type d | $XARGS $CHOWN root >/dev/null 2>&1
	done

}

InstallCronConfig()
{
	$CP -f "${CRON_JOB_CONF}" "${CRON_JOB_INSTALL_PATH}"
	$CHOWN root ${CRON_JOB_INSTALL_PATH}
	$CHMOD 644 "${CRON_JOB_INSTALL_PATH}"
}

UninstallCronConfig()
{
	if [ -f "${CRON_JOB_INSTALL_PATH}" ]; then
		$RM -f "${CRON_JOB_INSTALL_PATH}"
	fi
}

RecoverUpdate()
{
	if ! $SYNOCMSUTILS --recover-update; then
		$LOGGER -p err "Failed to do recover update"
		return 1
	fi
	$RM "$RECOVER_UPDATE_FLAG"
}

start()
{
	ChmodExistConfig
	CreateDBTable
	InstallCronConfig
	if [ -e "$RECOVER_UPDATE_FLAG" ]; then
		RecoverUpdate &
	else
		${UPDATE_CLIENT_CRED_SCRIPT} --post
	fi

	${PKG_TOOLS_SYNOCMSGPO} --notifyfetch
	$SYNOSYSTEMCTL start "${SYNOCMSTASKD}" "${SYNOCMSD}"
}

stop()
{
	$SYNOSYSTEMCTL stop "${SYNOCMSTASKD}" "${SYNOCMSD}"
	UninstallCronConfig
}

case $1 in
	start)
		start
		exit 0
	;;
	stop)
		stop
		exit 0
	;;
	status)
		if [ -e ${APP_PATH} ] &&
			[ "active" = "$($SYNOSYSTEMCTL get-active-status ${SYNOCMSTASKD})" ] &&
			[ "active" = "$($SYNOSYSTEMCTL get-active-status ${SYNOCMSD})" ]; then
			exit 0
		else
			exit 1
		fi
	;;
	killall)
        ;;
	log)
		exit 0
	;;
esac