#!rsc # RouterOS script: check-lte-firmware-upgrade # Copyright (c) 2018-2019 Christian Hesse # # check for LTE firmware upgrade, send notification e-mails :global Identity; :global SentLteFirmwareUpgradeNotification; :global SendNotification; :foreach Interface in=[ / interface lte find ] do={ :local IntName [ / interface lte get $Interface name ]; :do { :local Firmware [ / interface lte firmware-upgrade $Interface once as-value ]; # strip the extra line break (TODO: remove when fixed upstream) :set ($Firmware->"latest") [ :pick ($Firmware->"latest") 0 [ :find ($Firmware->"latest") "\n" ] ]; :if ($SentLteFirmwareUpgradeNotification = ($Firmware->"latest")) do={ :log debug ("Already sent the LTE firmware upgrade notification for version " . \ ($Firmware->"latest") . "."); } else={ :if (($Firmware->"installed") != ($Firmware->"latest")) do={ $SendNotification ("LTE firmware upgrade notification") \ ("A new firmware version " . ($Firmware->"latest") . " is available for " . \ "LTE interface " . $IntName . " on " . $Identity . "."); :set SentLteFirmwareUpgradeNotification ($Firmware->"latest"); } } } on-error={ :log debug ("Could not get latest LTE firmware version for interface " . \ $IntName . "."); } }