Merge branch 'ExitOnError' into next

This commit is contained in:
Christian Hesse 2026-01-20 12:16:42 +01:00
commit fbe7b8e4bc
17 changed files with 43 additions and 32 deletions

View file

@ -32,5 +32,5 @@
:set ($Seen->$Mac) 1; :set ($Seen->$Mac) 1;
} }
} do={ } do={
:global ExitError; $ExitError false [ :jobname ] $Err; :global ExitOnError; $ExitOnError [ :jobname ] $Err;
} }

View file

@ -32,5 +32,5 @@
:set ($Seen->$Mac) 1; :set ($Seen->$Mac) 1;
} }
} do={ } do={
:global ExitError; $ExitError false [ :jobname ] $Err; :global ExitOnError; $ExitOnError [ :jobname ] $Err;
} }

View file

@ -41,5 +41,5 @@
:set ($Seen->$Mac) 1; :set ($Seen->$Mac) 1;
} }
} do={ } do={
:global ExitError; $ExitError false [ :jobname ] $Err; :global ExitOnError; $ExitOnError [ :jobname ] $Err;
} }

View file

@ -32,5 +32,5 @@
:set ($Seen->$Mac) 1; :set ($Seen->$Mac) 1;
} }
} do={ } do={
:global ExitError; $ExitError false [ :jobname ] $Err; :global ExitOnError; $ExitOnError [ :jobname ] $Err;
} }

View file

@ -36,6 +36,7 @@
:global EitherOr; :global EitherOr;
:global EscapeForRegEx; :global EscapeForRegEx;
:global ExitError; :global ExitError;
:global ExitOnError;
:global FetchHuge; :global FetchHuge;
:global FetchUserAgentStr; :global FetchUserAgentStr;
:global FileExists; :global FileExists;
@ -473,20 +474,30 @@
:return $Return; :return $Return;
} }
# simple macro to print error message on unintentional error # wrapper for $ExitOnError with additional parameter
:set ExitError do={ :set ExitError do={
:local ExitOK [ :tostr $1 ]; :local ExitOK [ :tostr $1 ];
:local Name [ :tostr $2 ]; :local Name [ :tostr $2 ];
:local Error [ :tostr $3 ]; :local Error [ :tostr $3 ];
:global ExitOnError;
:if ($ExitOK = "false") do={
$ExitOnError $Name $Error;
}
}
# simple macro to print error message on unintentional error
:set ExitOnError do={
:local Name [ :tostr $1 ];
:local Error [ :tostr $2 ];
:global IfThenElse; :global IfThenElse;
:global LogPrint; :global LogPrint;
:if ($ExitOK = "false") do={ $LogPrint error $Name ([ $IfThenElse ([ :pick $Name 0 1 ] = "\$") \
$LogPrint error $Name ([ $IfThenElse ([ :pick $Name 0 1 ] = "\$") \ "Function" "Script" ] . " '" . $Name . "' exited with error" . \
"Function" "Script" ] . " '" . $Name . "' exited with error" . \ [ $IfThenElse (!($Error ~ "^(|true|false)\$")) (": " . $Error) "." ]);
[ $IfThenElse (!($Error ~ "^(|true|false)\$")) (": " . $Error) "." ]);
}
} }
# fetch huge data to file, read in chunks # fetch huge data to file, read in chunks
@ -1517,7 +1528,7 @@
:set GlobalConfigMigration; :set GlobalConfigMigration;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# lock script against multiple invocation # lock script against multiple invocation
@ -1663,7 +1674,7 @@
$SendNotification2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); $SendNotification2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via NotificationFunctions - expects one array argument # send notification via NotificationFunctions - expects one array argument

View file

@ -66,5 +66,5 @@
/interface/ethernet/enable $InterfaceReEnable; /interface/ethernet/enable $InterfaceReEnable;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }

View file

@ -75,5 +75,5 @@
/interface/ethernet/enable $InterfaceReEnable; /interface/ethernet/enable $InterfaceReEnable;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }

View file

@ -17,7 +17,7 @@
:put [ :tocrlf [ $InspectVarReturn $1 ] ]; :put [ :tocrlf [ $InspectVarReturn $1 ] ];
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# inspect variable and return formatted string # inspect variable and return formatted string

View file

@ -28,7 +28,7 @@
[ $FormatLine "HostMax" ($Values->"hostmax") ] . "\n" . \ [ $FormatLine "HostMax" ($Values->"hostmax") ] . "\n" . \
[ $FormatLine "Broadcast" ($Values->"broadcast") ]) ]; [ $FormatLine "Broadcast" ($Values->"broadcast") ]) ];
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# calculate and return netmask, network, min host, max host and broadcast # calculate and return netmask, network, min host, max host and broadcast

View file

@ -146,7 +146,7 @@
/system/scheduler/set interval=(($SchedVal->"run-count") . "m") \ /system/scheduler/set interval=(($SchedVal->"run-count") . "m") \
comment="Waiting for retry..." $Scheduler; comment="Waiting for retry..." $Scheduler;
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# generate filter for log-forward # generate filter for log-forward
@ -274,7 +274,7 @@
$SendEMail2 ({ origin=$0; subject=$1; message=$2; link=$3 }); $SendEMail2 ({ origin=$0; subject=$1; message=$2; link=$3 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via e-mail - expects one array argument # send notification via e-mail - expects one array argument

View file

@ -54,7 +54,7 @@
:set GotifyQueue; :set GotifyQueue;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via Gotify - expects one array argument # send notification via Gotify - expects one array argument
@ -126,7 +126,7 @@
$SendGotify2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); $SendGotify2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via Gotify - expects one array argument # send notification via Gotify - expects one array argument

View file

@ -59,7 +59,7 @@
:set MatrixQueue; :set MatrixQueue;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via Matrix - expects one array argument # send notification via Matrix - expects one array argument
@ -172,7 +172,7 @@
$SendMatrix2 ({ origin=$0; subject=$1; message=$2; link=$3 }); $SendMatrix2 ({ origin=$0; subject=$1; message=$2; link=$3 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via Matrix - expects one array argument # send notification via Matrix - expects one array argument

View file

@ -53,7 +53,7 @@
:set NtfyQueue; :set NtfyQueue;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via ntfy - expects one array argument # send notification via ntfy - expects one array argument
@ -148,7 +148,7 @@
$SendNtfy2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); $SendNtfy2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via ntfy - expects one array argument # send notification via ntfy - expects one array argument

View file

@ -62,7 +62,7 @@
:set TelegramQueue; :set TelegramQueue;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# get the chat id # get the chat id
@ -101,7 +101,7 @@
$LogPrint info $0 ("The thread id is: " . ($Message->"message_thread_id")); $LogPrint info $0 ("The thread id is: " . ($Message->"message_thread_id"));
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via telegram - expects one array argument # send notification via telegram - expects one array argument
@ -237,7 +237,7 @@
$SendTelegram2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 }); $SendTelegram2 ({ origin=$0; subject=$1; message=$2; link=$3; silent=$4 });
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# send notification via telegram - expects one array argument # send notification via telegram - expects one array argument

View file

@ -52,5 +52,5 @@
:return true; :return true;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }

View file

@ -68,7 +68,7 @@
:return false; :return false;
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
# import keys from a file # import keys from a file
@ -110,5 +110,5 @@
} }
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }

View file

@ -82,7 +82,7 @@
$LogPrint info $FuncName ("No action defined for " . $Count . " mode-button presses."); $LogPrint info $FuncName ("No action defined for " . $Count . " mode-button presses.");
} }
} do={ } do={
:global ExitError; $ExitError false $0 $Err; :global ExitOnError; $ExitOnError $0 $Err;
} } } }
/system/scheduler/add name="_ModeButtonScheduler" \ /system/scheduler/add name="_ModeButtonScheduler" \
on-event=":global ModeButtonScheduler; \$ModeButtonScheduler;" interval=3s; on-event=":global ModeButtonScheduler; \$ModeButtonScheduler;" interval=3s;
@ -91,5 +91,5 @@
/system/scheduler/set $Scheduler start-time=[ /system/clock/get time ]; /system/scheduler/set $Scheduler start-time=[ /system/clock/get time ];
} }
} do={ } do={
:global ExitError; $ExitError false [ :jobname ] $Err; :global ExitOnError; $ExitOnError [ :jobname ] $Err;
} }