aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--backup-partition.rsc55
1 files changed, 30 insertions, 25 deletions
diff --git a/backup-partition.rsc b/backup-partition.rsc
index 1db5e1d..4793f12 100644
--- a/backup-partition.rsc
+++ b/backup-partition.rsc
@@ -9,37 +9,42 @@
# save configuration to fallback partition
# https://git.eworm.de/cgit/routeros-scripts/about/doc/backup-partition.md
-:local 0 [ :jobname ];
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
-:global LogPrintExit2;
-:global ScriptLock;
+:local Main do={
+ :local ScriptName [ :tostr $1 ];
-$ScriptLock $0;
+ :global LogPrintExit2;
+ :global ScriptLock;
-:if ([ :len [ /partitions/find ] ] < 2) do={
- $LogPrintExit2 error $0 ("Device does not have a fallback partition.") true;
-}
+ $ScriptLock $ScriptName;
-:local ActiveRunning [ /partitions/find where active running ];
+ :if ([ :len [ /partitions/find ] ] < 2) do={
+ $LogPrintExit2 error $ScriptName ("Device does not have a fallback partition.") true;
+ }
-:if ([ :len $ActiveRunning ] < 1) do={
- $LogPrintExit2 error $0 ("Device is not running from active partition.") true;
-}
+ :local ActiveRunning [ /partitions/find where active running ];
+
+ :if ([ :len $ActiveRunning ] < 1) do={
+ $LogPrintExit2 error $ScriptName ("Device is not running from active partition.") true;
+ }
-:local FallbackTo [ /partitions/get $ActiveRunning fallback-to ];
-
-:do {
- /system/scheduler/add start-time=startup name="running-from-backup-partition" \
- on-event=(":log warning (\"Running from partition '\" . " . \
- "[ /partitions/get [ find where running ] name ] . \"'!\")");
- /partitions/save-config-to $FallbackTo;
- /system/scheduler/remove "running-from-backup-partition";
- $LogPrintExit2 info $0 ("Saved configuration to partition '" . \
- $FallbackTo . "'.") false;
-} on-error={
- /system/scheduler/remove [ find where name="running-from-backup-partition" ];
- $LogPrintExit2 error $0 ("Failed saving configuration to partition '" . \
- $FallbackTo . "'!") true;
+ :local FallbackTo [ /partitions/get $ActiveRunning fallback-to ];
+
+ :do {
+ /system/scheduler/add start-time=startup name="running-from-backup-partition" \
+ on-event=(":log warning (\"Running from partition '\" . " . \
+ "[ /partitions/get [ find where running ] name ] . \"'!\")");
+ /partitions/save-config-to $FallbackTo;
+ /system/scheduler/remove "running-from-backup-partition";
+ $LogPrintExit2 info $ScriptName ("Saved configuration to partition '" . \
+ $FallbackTo . "'.") false;
+ } on-error={
+ /system/scheduler/remove [ find where name="running-from-backup-partition" ];
+ $LogPrintExit2 error $ScriptName ("Failed saving configuration to partition '" . \
+ $FallbackTo . "'!") true;
+ }
}
+
+$Main [ :jobname ];