aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sms-action.rsc34
1 files changed, 19 insertions, 15 deletions
diff --git a/sms-action.rsc b/sms-action.rsc
index 49b6cd5..b78a2b2 100644
--- a/sms-action.rsc
+++ b/sms-action.rsc
@@ -8,26 +8,30 @@
# run action on received SMS
# https://git.eworm.de/cgit/routeros-scripts/about/doc/sms-action.md
-:local 0 [ :jobname ];
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
-:global SmsAction;
+:local Main do={
+ :local ScriptName [ :tostr $1 ];
+ :local Action [ :tostr $2 ];
-:global LogPrintExit2;
-:global ValidateSyntax;
+ :global SmsAction;
-:local Action $action;
+ :global LogPrintExit2;
+ :global ValidateSyntax;
-:if ([ :typeof $Action ] = "nothing") do={
- $LogPrintExit2 error $0 ("This script is supposed to run from SMS hook with action=...") true;
-}
+ :if ([ :len $Action ] = 0) do={
+ $LogPrintExit2 error $ScriptName ("This script is supposed to run from SMS hook with action=...") true;
+ }
-:local Code ($SmsAction->$Action);
-:if ([ $ValidateSyntax $Code ] = true) do={
- :log info ("Acting on SMS action '" . $Action . "': " . $Code);
- :delay 1s;
- [ :parse $Code ];
-} else={
- $LogPrintExit2 warning $0 ("The code for action '" . $Action . "' failed syntax validation!") false;
+ :local Code ($SmsAction->$Action);
+ :if ([ $ValidateSyntax $Code ] = true) do={
+ :log info ("Acting on SMS action '" . $Action . "': " . $Code);
+ :delay 1s;
+ [ :parse $Code ];
+ } else={
+ $LogPrintExit2 warning $ScriptName ("The code for action '" . $Action . "' failed syntax validation!") false;
+ }
}
+
+$Main [ :jobname ] $action;