aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Christian Hesse <mail@eworm.de>2024-03-04 13:48:01 +0100
committerGravatar Christian Hesse <mail@eworm.de>2024-03-04 17:04:45 +0100
commitcf986caf8d1b2eda83fad2b6c6daecbf0e93a8c7 (patch)
treec9b276ee39718a99ade8097c7304ea41ab4ed64b
parent29f544d18d00fcc5e79909c3451c718cf65b718e (diff)
firmware-upgrade-reboot: move code into function
-rw-r--r--firmware-upgrade-reboot.rsc69
1 files changed, 37 insertions, 32 deletions
diff --git a/firmware-upgrade-reboot.rsc b/firmware-upgrade-reboot.rsc
index adcea73..efe22ae 100644
--- a/firmware-upgrade-reboot.rsc
+++ b/firmware-upgrade-reboot.rsc
@@ -8,40 +8,45 @@
# install firmware upgrade, and reboot
# https://git.eworm.de/cgit/routeros-scripts/about/doc/firmware-upgrade-reboot.md
-:local 0 [ :jobname ];
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
-:global LogPrintExit2;
-:global ScriptLock;
-:global VersionToNum;
-
-$ScriptLock $0;
-
-:local RouterBoard [ /system/routerboard/get ];
-:if ($RouterBoard->"current-firmware" = $RouterBoard->"upgrade-firmware") do={
- $LogPrintExit2 info $0 ("Current and upgrade firmware match with version " . \
- $RouterBoard->"current-firmware" . ".") true;
-}
-:if ([ $VersionToNum ($RouterBoard->"current-firmware") ] > [ $VersionToNum ($RouterBoard->"upgrade-firmware") ]) do={
- $LogPrintExit2 info $0 ("Different firmware version is available, but it is a downgrade. Ignoring.") true;
-}
-
-:if ([ /system/routerboard/settings/get auto-upgrade ] = false) do={
- $LogPrintExit2 info $0 ("Firmware version " . $RouterBoard->"upgrade-firmware" . \
- " is available, upgrading.") false;
- /system/routerboard/upgrade;
-}
-
-:while ([ :len [ /log/find where topics=({"system";"info";"critical"}) \
- message="Firmware upgraded successfully, please reboot for changes to take effect!" ] ] = 0) do={
- :delay 1s;
-}
-
-:local Uptime [ /system/resource/get uptime ];
-:if ($Uptime < 1m) do={
- :delay $Uptime;
+:local Main do={
+ :local ScriptName [ :tostr $1 ];
+
+ :global LogPrintExit2;
+ :global ScriptLock;
+ :global VersionToNum;
+
+ $ScriptLock $ScriptName;
+
+ :local RouterBoard [ /system/routerboard/get ];
+ :if ($RouterBoard->"current-firmware" = $RouterBoard->"upgrade-firmware") do={
+ $LogPrintExit2 info $ScriptName ("Current and upgrade firmware match with version " . \
+ $RouterBoard->"current-firmware" . ".") true;
+ }
+ :if ([ $VersionToNum ($RouterBoard->"current-firmware") ] > [ $VersionToNum ($RouterBoard->"upgrade-firmware") ]) do={
+ $LogPrintExit2 info $ScriptName ("Different firmware version is available, but it is a downgrade. Ignoring.") true;
+ }
+
+ :if ([ /system/routerboard/settings/get auto-upgrade ] = false) do={
+ $LogPrintExit2 info $ScriptName ("Firmware version " . $RouterBoard->"upgrade-firmware" . \
+ " is available, upgrading.") false;
+ /system/routerboard/upgrade;
+ }
+
+ :while ([ :len [ /log/find where topics=({"system";"info";"critical"}) \
+ message="Firmware upgraded successfully, please reboot for changes to take effect!" ] ] = 0) do={
+ :delay 1s;
+ }
+
+ :local Uptime [ /system/resource/get uptime ];
+ :if ($Uptime < 1m) do={
+ :delay $Uptime;
+ }
+
+ $LogPrintExit2 info $ScriptName ("Firmware upgrade successful, rebooting.") false;
+ /system/reboot;
}
-$LogPrintExit2 info $0 ("Firmware upgrade successful, rebooting.") false;
-/system/reboot;
+$Main [ :jobname ];