diff options
author | Christian Hesse <mail@eworm.de> | 2019-01-02 22:27:31 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2019-01-02 22:50:23 +0100 |
commit | e2b5124e8c049f9df16a4a2c9a02f683a490548c (patch) | |
tree | 06b96241ec8355a3e987dc0f85378795fa89efe1 /unattended-lte-firmware-upgrade | |
parent | 29a363649dc672dd1202a9222e63fe3907548518 (diff) |
add script 'unattended-lte-firmware-upgrade'
Diffstat (limited to 'unattended-lte-firmware-upgrade')
-rw-r--r-- | unattended-lte-firmware-upgrade | 29 |
1 files changed, 29 insertions, 0 deletions
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 <mail@eworm.de> +# +# 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; + } +} |