File: //usr/syno/etc/rc.sysv/syno_bundle_firmware_upgrade_notify.sh
#!/bin/sh
# Copyright (c) 2000-2020 Synology Inc. All rights reserved.
notificationSource='/var/lib/drive-bundle/notification-source'
if [ ! -f "${notificationSource}" ]; then
exit 0
fi
if [ "yes" = "$(/usr/syno/sbin/synohacore --is_ha_running)" ] && [ "yes" != "$(/usr/syno/bin/synogetkeyvalue /etc.defaults/synoinfo.conf support_xa)" ]; then
exit 0
fi
resp=$(/usr/syno/bin/synowebapi --exec 'api=SYNO.Core.Storage.Disk.FWUpgrade' 'method=get_summary' 'source="notification"' 2> /dev/null)
if [ "true" != "$(/bin/echo "${resp}" | /bin/jq .success)" ] || [ "true" != "$(/bin/echo "${resp}" | /bin/jq .data.success)" ]; then
exit 0
fi
summaryJson="$(/bin/echo "${resp}" | /bin/jq -c .data)"
param="{\"summaryList\": [${summaryJson}], \"ui_state\": \"single_summary\"}"
resp=$(/usr/syno/bin/synowebapi --exec 'api=SYNO.Core.Storage.Disk.FWUpgrade' 'method=send_notification' "ui_json=${param}" 2> /dev/null)
if [ "true" = "$(/bin/echo "$resp" | /bin/jq .success)" ]; then
/usr/syno/bin/synowebapi --exec 'api=SYNO.Core.Storage.Disk.FWUpgrade' 'method=cancel_send_notification' > /dev/null 2>&1
fi
exit 0