HEX
Server: Apache/2.4.63 (Unix)
System: Linux Synopilou92 4.4.302+ #72806 SMP Mon Jul 21 23:16:00 CST 2025 x86_64
User: pilou92 (1026)
PHP: 8.0.30
Disabled: NONE
Upload Files
File: //var/packages/ActiveInsight/scripts/pkg_utils
PKG_DIR="/var/packages/${SYNOPKG_PKGNAME}"

PKG_ETC_DIR="${PKG_DIR}/etc"
PKG_VAR_DIR="${PKG_DIR}/var"
PKG_ZZZ_DIR="${PKG_VAR_DIR}/zzz"
PKG_RUN_DIR="/run/ActiveInsight"

PKG_VAR_STATUS_JSON="${PKG_VAR_DIR}/pkg_status.json"

MIB_CONF_PATH=/usr/syno/etc/synomibclient.conf
MIB_PKG_TOOL="/var/packages/${SYNOPKG_PKGNAME}/target/bin/synomibtool"

UPGRADE_TMP_DIR="${SYNOPKG_PKGDEST_VOL}/@tmp/MIB_upgrade"

FILE_ACTIVITY_STATISTIC_DB_DIR="/var/packages/ActiveInsight/var/file_activity"
OLD_PKG_VER_FOR_UPGRADE_PATH="${UPGRADE_TMP_DIR}/.old_pkg_ver_for_upgrade"

SYNOMIB_RESOURCE_MONITOR="/var/packages/ActiveInsight/target/bin/synomibresourcemonitor"

Rm() { /bin/rm "$@"; }
Mkdir() { /bin/mkdir "$@"; }
Cp() { /bin/cp "$@"; }
Mv() { /bin/mv "$@"; }
Echo() { /bin/echo "$@"; }

UpdateCollectors()
{
	rm -rf "${PKG_VAR_DIR}/collectors"
	rm -rf "${PKG_VAR_DIR}/collectors_all"
	rm -f "${PKG_VAR_DIR}/collectors.conf"

	cp -af "${PKG_DIR}/target/collectors" "${PKG_VAR_DIR}/collectors"
	cp -f "${PKG_DIR}/target/configs/collectors.conf" "${PKG_VAR_DIR}/collectors.conf"
}

DisableFileActivity()
{
	local reason=$1
	${SYNOMIB_RESOURCE_MONITOR} feature disable -f FILE_ACTIVITY -r ${reason}
}

EnableFileActivity()
{
	${SYNOMIB_RESOURCE_MONITOR} feature enable -f FILE_ACTIVITY
}

ResetAllDisableFeatures()
{
	${SYNOMIB_RESOURCE_MONITOR} feature reset
}

IsDSMVersionGe() {
	local product_version=$(/usr/syno/bin/synoversionget --product-version)
	local nano=$(/usr/syno/bin/synoversionget --nano)
	local target_feature_version=$1
	local target_nano=$2

	if [[ ${product_version} == ${target_feature_version} ]]; then
		if [ ${nano} -ge ${target_nano} ]; then
			return 0
		else
			return 1
		fi
	fi

	if [[ $(printf '%s\n' "$product_version" "$target_feature_version" | sort -V -r | head -n1) == "$target_feature_version" ]]; then
		return 1
	fi

	return 0
}

IsKernelVersionEq() {
	local version=$1
	local linux_version=$(/bin/uname --kernel-release | /bin/awk -F. '{print $1"."$2}')
	if [[ ${linux_version} == ${version} ]]; then
		return 0
	else
		return 1
	fi
}

IsFileActivityDisableByKernelIssue() {
	local disable=$(${SYNOMIB_RESOURCE_MONITOR} feature get -f FILE_ACTIVITY | jq -r .disable)
	local disable_reason=$(${SYNOMIB_RESOURCE_MONITOR} feature get -f FILE_ACTIVITY | jq -r .disable_reason)
	if [[ ${disable} == "true" ]] && [[ ${disable_reason} == "INVALID_SYNOTIFY_PATH_LENGTH" ]] ; then
		return 0
	else
		return 1
	fi
}