File: //usr/syno/lib/systemd/scripts/install_online_pack.sh
#!/bin/sh
# Copyright (c) 2000-2024 Synology Inc. All rights reserved.
main()
{
local pkg_name="SynoOnlinePack_v2"
local support_ha=$(/bin/get_key_value /etc.defaults/synoinfo.conf support_ha)
local spk_file=$(find /.SynoUpgradePackages -type f | grep $pkg_name)
if [ "yes" != "$support_ha" ]; then
return 0
fi
if [ -z "$spk_file" ] || [ ! -f "$spk_file" ]; then
return 0
fi
local version_from_builtin=$(/usr/syno/bin/synopkg query $spk_file | /bin/grep 'Package version' | /bin/awk -F': ' '{print $2}')
# example from synopkg query
# Package name: SynoOnlinePack_v2
# Package version: 123
# Package description: ......
local version_in_system=$(/usr/syno/bin/synopkg version $pkg_name)
if [[ "$version_from_builtin" =~ ^[0-9]+$ ]] && [[ "$version_in_system" =~ ^[0-9]+$ ]] && [ "$version_from_builtin" -lt "$version_in_system" ]; then
/bin/echo "Skip package downgrade, pkg=[$pkg_name]"
/bin/rm -f "$spk_file"
return 0
fi
/usr/syno/bin/synopkg install --ignore-limit "$spk_file"
local ret=$?
if [ $ret -eq 0 ]; then
/bin/echo "Installed online pack from dsm patch manually."
/bin/rm -f "$spk_file"
fi
return $ret
}
main
exit $?