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/postinst
#!/bin/bash
# Copyright (c) 2019 Synology Inc. All rights reserved.

. /var/packages/"${SYNOPKG_PKGNAME}"/scripts/pkg_utils

MIB_CONF_PATH_IN_DSM_6_2="/usr/syno/etc/synomibmode.conf"

CreateMachineInfoForMigration()
{
	${MIB_PKG_TOOL} --create-machine-info-for-migration
}

CreateAndUpdateConfigFile()
{
	local old_version="$(/bin/echo ${SYNOPKG_OLD_PKGVER} | /bin/cut -d'-' -f2)"
	if [ -f "${MIB_CONF_PATH_IN_DSM_6_2}" ]; then
		# Even if upgrading from DSM7.0, regard it as DSM6.2 if the settings from DSM6.2 exist
		${MIB_PKG_TOOL} --update-config-file "0"
	elif [ "${SYNOPKG_PKG_STATUS}" = "UPGRADE" ] && [ "" != "${old_version}" ]; then
		${MIB_PKG_TOOL} --update-config-file "${old_version}"
	fi
	${MIB_PKG_TOOL} --create-config-file
}

CreateStatusJson()
{
	/bin/jq -nc --arg status disabled '{$status}' > "${PKG_VAR_STATUS_JSON}"
}

CreatePythonEnv()
{
	if ! python3 -m venv /var/packages/ActiveInsight/tmp/venv; then
		echo 'failed to create python venv' >&2
		return 1
	fi
	if ! /var/packages/ActiveInsight/tmp/venv/bin/pip install /var/packages/ActiveInsight/target/synomibexecutor; then
		echo 'failed to install synomibexecutor' >&2
		return 1
	fi
	if ! /var/packages/ActiveInsight/tmp/venv/bin/pip uninstall -y pip; then
		echo 'failed to uninstall pip' >&2
		return 1
	fi
}

IsMemoryLimitedModels()
{
	local BlockedModels=("DS220j" "DS120j" "DS419slim" "DS218j" "RS217" "DS416j" "DS416slim" "DS216" "DS216j" "DS215j" "DS115" "RS214" "DS414j" "DS414slim" "DS214" "DS114" "DS213j" "DS115j" "DS119j" "DS214se" "DS216se")
	local model=$(/usr/syno/bin/synowebapi --exec api=SYNO.Core.System method=info version=3 2>/dev/null | /bin/jq -r .data.model)
	for blockModel in "${BlockedModels[@]}"; do
		if [[ "$blockModel" == "$model" ]]; then
			return 0
		fi
	done
	return 1
}

IsInstall()
{
	if [[ "$SYNOPKG_PKG_STATUS" == "INSTALL" ]]; then
		return 0
	fi
	return 1
}

IsUpgradeFromVersionOneOrTwo()
{
	if [[ "$SYNOPKG_PKG_STATUS" != "UPGRADE" ]]; then
		return 1
	fi
	local old_major_version="$(/bin/cat ${OLD_PKG_VER_FOR_UPGRADE_PATH} | /bin/cut -d'.' -f1)"
	[[ "$old_major_version" == "1" ]] && return 0
	[[ "$old_major_version" == "2" ]] && return 0
	return 1
}

IsUpgradeFromOldVersionThree()
{
	if [[ "$SYNOPKG_PKG_STATUS" != "UPGRADE" ]]; then
		return 1
	fi
	local old_feature_version="$(/bin/cat ${OLD_PKG_VER_FOR_UPGRADE_PATH} | /bin/cut -d'-' -f1)"
	[[ "$old_feature_version" == "3.0.0" ]] && return 0
	[[ "$old_feature_version" == "3.0.1" ]] && return 0
	[[ "$old_feature_version" == "3.0.2" ]] && return 0
	return 1
}

Mkdir -m 700 -p "${PKG_ZZZ_DIR}"

CreateMachineInfoForMigration

CreateAndUpdateConfigFile

if [ ! -f "${PKG_VAR_STATUS_JSON}" ]; then
	CreateStatusJson
fi

UpdateCollectors

if ! CreatePythonEnv; then
	echo 'failed to create python env, abort' >&2
	exit 1
fi

if IsInstall || IsUpgradeFromVersionOneOrTwo; then
	# make sure all settings are new
	ResetAllDisableFeatures
fi

if IsMemoryLimitedModels; then
	DisableFileActivity "WITHOUT_ENOUGH_MEMORY"
elif IsUpgradeFromOldVersionThree; then
	EnableFileActivity
	if [ -d /var/packages/ActiveInsight/var/file_activity ] || [ -L /var/packages/ActiveInsight/var/file_activity ]; then
		${SYNOMIB_RESOURCE_MONITOR} set-need-migrate-storage
	else
		${SYNOMIB_RESOURCE_MONITOR} remove-need-migrate-storage
	fi
else
	${SYNOMIB_RESOURCE_MONITOR} remove-need-migrate-storage
fi

exit 0