From e2b5124e8c049f9df16a4a2c9a02f683a490548c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 2 Jan 2019 22:27:31 +0100 Subject: add script 'unattended-lte-firmware-upgrade' --- unattended-lte-firmware-upgrade | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 unattended-lte-firmware-upgrade diff --git a/unattended-lte-firmware-upgrade b/unattended-lte-firmware-upgrade new file mode 100644 index 0000000..3570c57 --- /dev/null +++ b/unattended-lte-firmware-upgrade @@ -0,0 +1,29 @@ +#!rsc +# RouterOS script: unattended-lte-firmware-upgrade +# Copyright (c) 2018-2019 Christian Hesse +# +# schedule unattended lte firmware upgrade + +:foreach interface in=[ / interface lte find ] do={ + :local firmware; + :local intname [ / interface lte get $interface name ]; + do { + :set 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" ] ]; + } on-error={ + :log debug ("Could not get latest LTE firmware version for interface " . $intname . "."); + } + + :if (($firmware->"installed") != ($firmware->"latest")) do={ + :log info ("Scheduling LTE firmware upgrade for interface " . $intname . "."); + / system script add name=($intname . "-firmware-upgrade") source=("# unattended-lte-firmware-upgrade\n" . \ + "/ system scheduler remove " . $intname . "-firmware-upgrade;\n" . \ + "/ system script remove " . $intname . "-firmware-upgrade;\n" . \ + "/ interface lte firmware-upgrade " . $intname . " upgrade=yes;\n" . \ + ":log info (\"LTE firmware upgrade finished, waiting for installation before reset.\");\n" . \ + ":delay 150s;\n" . \ + "/ interface lte at-chat " . $intname . " input=\"AT+RESET\";"); + / system scheduler add name=($intname . "-firmware-upgrade") on-event=($intname . "-firmware-upgrade") interval=1m; + } +} -- cgit v1.2.3-54-g00ecf