diff options
author | Christian Hesse <mail@eworm.de> | 2024-03-04 17:53:35 +0100 |
---|---|---|
committer | Christian Hesse <mail@eworm.de> | 2024-03-04 21:40:34 +0100 |
commit | 771ca341b040fdf1a6dc9828deec16bbbe42d797 (patch) | |
tree | 6a9e9cdffbdabdae623636509ae2f06bd76f00ef /sms-action.rsc | |
parent | 64aa6ef1249be378f02b8c211f53a7f12da4f695 (diff) | |
parent | 698360f03757cefc08b27c9beac9fe16af7c1d7e (diff) |
Merge branch 'main-function' into next
Diffstat (limited to 'sms-action.rsc')
-rw-r--r-- | sms-action.rsc | 34 |
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; |