aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--INITIAL-COMMANDS.md1
-rw-r--r--backup-cloud.rsc4
-rw-r--r--backup-partition.rsc42
-rw-r--r--check-lte-firmware-upgrade.rsc2
-rw-r--r--daily-psk.capsman.rsc8
-rw-r--r--daily-psk.local.rsc8
-rw-r--r--daily-psk.template.rsc10
-rw-r--r--daily-psk.wifi.rsc10
-rw-r--r--doc/backup-cloud.md2
-rw-r--r--doc/backup-email.md2
-rw-r--r--doc/backup-partition.md23
-rw-r--r--doc/backup-upload.md2
-rw-r--r--doc/telegram-chat.md2
-rw-r--r--global-config.rsc2
-rw-r--r--global-functions.rsc8
-rw-r--r--news-and-changes.rsc1
-rw-r--r--telegram-chat.rsc23
-rw-r--r--unattended-lte-firmware-upgrade.rsc2
18 files changed, 109 insertions, 43 deletions
diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md
index 4a12197..323e035 100644
--- a/INITIAL-COMMANDS.md
+++ b/INITIAL-COMMANDS.md
@@ -23,7 +23,6 @@ Run the complete base installation:
:if ([ :len [ /certificate/find where fingerprint="46494e30379059df18be52124305e606fc59070e5b21076ce113954b60517cda" or fingerprint="69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470" ] ] != 2) do={
:error "Something is wrong with your certificates!";
};
- /file/remove [ find where name="letsencrypt-E1.pem" ];
:delay 1s;
/system/script/set name=("global-config-overlay-" . [ /system/clock/get date ] . "-" . [ /system/clock/get time ]) [ find where name="global-config-overlay" ];
:foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={
diff --git a/backup-cloud.rsc b/backup-cloud.rsc
index 88dd345..697ee95 100644
--- a/backup-cloud.rsc
+++ b/backup-cloud.rsc
@@ -66,6 +66,10 @@
} while=([ $WaitForFile "tmpfs/backup-cloud/done" 200ms ] = false && $I > 0);
:if ([ $WaitForFile "tmpfs/backup-cloud/done" ] = true) do={
+ :if ($I < 4) do={
+ :log warning ($ScriptName . ": Retry successful, please discard previous connection errors.");
+ }
+
:local Cloud [ /system/backup/cloud/get ([ find ]->0) ];
$SendNotification2 ({ origin=$ScriptName; \
diff --git a/backup-partition.rsc b/backup-partition.rsc
index fc186c0..3c883f7 100644
--- a/backup-partition.rsc
+++ b/backup-partition.rsc
@@ -15,10 +15,29 @@
:do {
:local ScriptName [ :jobname ];
+ :global BackupPartitionCopyBeforeFeatureUpdate;
:global PackagesUpdateBackupFailure;
:global LogPrint;
+ :global ScriptFromTerminal;
:global ScriptLock;
+ :global VersionToNum;
+
+ :local CopyTo do={
+ :local ScriptName [ :tostr $1 ];
+ :local FallbackTo [ :tostr $2 ];
+
+ :global LogPrint;
+
+ :do {
+ /partitions/copy-to $FallbackTo;
+ $LogPrint info $ScriptName ("Copied RouterOS to partition '" . $FallbackTo . "'.");
+ :return true;
+ } on-error={
+ $LogPrint error $ScriptName ("Failed copying RouterOS to partition '" . $FallbackTo . "'!");
+ :return false;
+ }
+ }
:if ([ $ScriptLock $ScriptName ] = false) do={
:set PackagesUpdateBackupFailure true;
@@ -41,6 +60,29 @@
:local FallbackTo [ /partitions/get $ActiveRunning fallback-to ];
+ :if ([ /partitions/get $ActiveRunning version ] != [ /partitions/get $FallbackTo version]) do={
+ :if ([ $ScriptFromTerminal $ScriptName ] = true) do={
+ :put ("The partitions have different RouterOS versions. Copy over to '" . $FallbackTo . "'? [y/N]");
+ :if (([ /terminal/inkey timeout=60 ] % 32) = 25) do={
+ :if ([ $CopyTo $ScriptName $FallbackTo ] = false) do={
+ :set PackagesUpdateBackupFailure true;
+ :error false;
+ }
+ }
+ } else={
+ :local Update [ /system/package/update/get ];
+ :local NumInstalled [ $VersionToNum ($Update->"installed-version") ];
+ :local NumLatest [ $VersionToNum ($Update->"latest-version") ];
+ :if ($BackupPartitionCopyBeforeFeatureUpdate = true && $NumLatest > 0 && \
+ ($NumInstalled & 0xffff0000) != ($NumLatest & 0xffff0000)) do={
+ :if ([ $CopyTo $ScriptName $FallbackTo ] = false) do={
+ :set PackagesUpdateBackupFailure true;
+ :error false;
+ }
+ }
+ }
+ }
+
:do {
/system/scheduler/add start-time=startup name="running-from-backup-partition" \
on-event=(":log warning (\"Running from partition '\" . " . \
diff --git a/check-lte-firmware-upgrade.rsc b/check-lte-firmware-upgrade.rsc
index 3a25f83..5ea094e 100644
--- a/check-lte-firmware-upgrade.rsc
+++ b/check-lte-firmware-upgrade.rsc
@@ -44,7 +44,7 @@
:local Firmware;
:local Info;
:do {
- :set Firmware [ /interface/lte/firmware-upgrade $Interface once as-value ];
+ :set Firmware [ /interface/lte/firmware-upgrade $Interface as-value ];
:set Info [ /interface/lte/monitor $Interface once as-value ];
} on-error={
$LogPrint debug $ScriptName ("Could not get latest LTE firmware version for interface " . \
diff --git a/daily-psk.capsman.rsc b/daily-psk.capsman.rsc
index 64e8ce7..eed1b16 100644
--- a/daily-psk.capsman.rsc
+++ b/daily-psk.capsman.rsc
@@ -68,7 +68,7 @@
:local Skip 0;
:if ($NewPsk != $OldPsk) do={
- $LogPrint info $ScriptName ("Updating daily PSK for " . $Ssid . " to " . $NewPsk . " (was " . $OldPsk . ")");
+ $LogPrint info $ScriptName ("Updating daily PSK for '" . $Ssid . "' to '" . $NewPsk . "' (was '" . $OldPsk . "')");
/caps-man/access-list/set $AccList private-passphrase=$NewPsk;
:if ([ :len [ /caps-man/actual-interface-configuration/find where configuration.ssid=$Ssid !disabled ] ] > 0) do={
@@ -80,9 +80,9 @@
$SendNotification2 ({ origin=$ScriptName; \
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
- [ $FormatLine "SSID" $Ssid ] . "\n" . \
- [ $FormatLine "PSK" $NewPsk ] . "\n" . \
- [ $FormatLine "Date" $Date ] . "\n\n" . \
+ [ $FormatLine "SSID" $Ssid 8 ] . "\n" . \
+ [ $FormatLine "PSK" $NewPsk 8 ] . "\n" . \
+ [ $FormatLine "Date" $Date 8 ] . "\n\n" . \
"A client device specific rule must not exist!"); link=$Link });
:set ($Seen->$Ssid) 1;
}
diff --git a/daily-psk.local.rsc b/daily-psk.local.rsc
index 48e2b8d..fe21665 100644
--- a/daily-psk.local.rsc
+++ b/daily-psk.local.rsc
@@ -67,7 +67,7 @@
:local Skip 0;
:if ($NewPsk != $OldPsk) do={
- $LogPrint info $ScriptName ("Updating daily PSK for " . $Ssid . " to " . $NewPsk . " (was " . $OldPsk . ")");
+ $LogPrint info $ScriptName ("Updating daily PSK for '" . $Ssid . "' to '" . $NewPsk . "' (was '" . $OldPsk . "')");
/interface/wireless/access-list/set $AccList private-pre-shared-key=$NewPsk;
:if ([ :len [ /interface/wireless/find where name=$IntName !disabled ] ] = 1) do={
@@ -79,9 +79,9 @@
$SendNotification2 ({ origin=$ScriptName; \
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
- [ $FormatLine "SSID" $Ssid ] . "\n" . \
- [ $FormatLine "PSK" $NewPsk ] . "\n" . \
- [ $FormatLine "Date" $Date ] . "\n\n" . \
+ [ $FormatLine "SSID" $Ssid 8 ] . "\n" . \
+ [ $FormatLine "PSK" $NewPsk 8 ] . "\n" . \
+ [ $FormatLine "Date" $Date 8 ] . "\n\n" . \
"A client device specific rule must not exist!"); link=$Link });
:set ($Seen->$Ssid) 1;
}
diff --git a/daily-psk.template.rsc b/daily-psk.template.rsc
index 5097b00..62b956d 100644
--- a/daily-psk.template.rsc
+++ b/daily-psk.template.rsc
@@ -79,13 +79,13 @@
:local Skip 0;
:if ($NewPsk != $OldPsk) do={
- $LogPrint info $ScriptName ("Updating daily PSK for " . $Ssid . " to " . $NewPsk . " (was " . $OldPsk . ")");
+ $LogPrint info $ScriptName ("Updating daily PSK for '" . $Ssid . "' to '" . $NewPsk . "' (was '" . $OldPsk . "')");
/caps-man/access-list/set $AccList private-passphrase=$NewPsk;
/interface/wifi/access-list/set $AccList passphrase=$NewPsk;
/interface/wireless/access-list/set $AccList private-pre-shared-key=$NewPsk;
:if ([ :len [ /caps-man/actual-interface-configuration/find where configuration.ssid=$Ssid !disabled ] ] > 0) do={
- :if ([ :len [ /interface/wifi/actual-configuration/find where configuration.ssid=$Ssid ] ] > 0) do={
+ :if ([ :len [ /interface/wifi/find where configuration.ssid=$Ssid !disabled ] ] > 0) do={
:if ([ :len [ /interface/wireless/find where name=$IntName !disabled ] ] = 1) do={
:if ($Seen->$Ssid = 1) do={
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
@@ -95,9 +95,9 @@
$SendNotification2 ({ origin=$ScriptName; \
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
- [ $FormatLine "SSID" $Ssid ] . "\n" . \
- [ $FormatLine "PSK" $NewPsk ] . "\n" . \
- [ $FormatLine "Date" $Date ] . "\n\n" . \
+ [ $FormatLine "SSID" $Ssid 8 ] . "\n" . \
+ [ $FormatLine "PSK" $NewPsk 8 ] . "\n" . \
+ [ $FormatLine "Date" $Date 8 ] . "\n\n" . \
"A client device specific rule must not exist!"); link=$Link });
:set ($Seen->$Ssid) 1;
}
diff --git a/daily-psk.wifi.rsc b/daily-psk.wifi.rsc
index 9d7f285..054ab19 100644
--- a/daily-psk.wifi.rsc
+++ b/daily-psk.wifi.rsc
@@ -68,10 +68,10 @@
:local Skip 0;
:if ($NewPsk != $OldPsk) do={
- $LogPrint info $ScriptName ("Updating daily PSK for " . $Ssid . " to " . $NewPsk . " (was " . $OldPsk . ")");
+ $LogPrint info $ScriptName ("Updating daily PSK for '" . $Ssid . "' to '" . $NewPsk . "' (was '" . $OldPsk . "')");
/interface/wifi/access-list/set $AccList passphrase=$NewPsk;
- :if ([ :len [ /interface/wifi/actual-configuration/find where configuration.ssid=$Ssid ] ] > 0) do={
+ :if ([ :len [ /interface/wifi/find where configuration.ssid=$Ssid !disabled ] ] > 0) do={
:if ($Seen->$Ssid = 1) do={
$LogPrint debug $ScriptName ("Already sent a mail for SSID " . $Ssid . ", skipping.");
} else={
@@ -80,9 +80,9 @@
$SendNotification2 ({ origin=$ScriptName; \
subject=([ $SymbolForNotification "calendar" ] . "daily PSK " . $Ssid); \
message=("This is the daily PSK on " . $Identity . ":\n\n" . \
- [ $FormatLine "SSID" $Ssid ] . "\n" . \
- [ $FormatLine "PSK" $NewPsk ] . "\n" . \
- [ $FormatLine "Date" $Date ] . "\n\n" . \
+ [ $FormatLine "SSID" $Ssid 8 ] . "\n" . \
+ [ $FormatLine "PSK" $NewPsk 8 ] . "\n" . \
+ [ $FormatLine "Date" $Date 8 ] . "\n\n" . \
"A client device specific rule must not exist!"); link=$Link });
:set ($Seen->$Ssid) 1;
}
diff --git a/doc/backup-cloud.md b/doc/backup-cloud.md
index be6e06d..1f9e123 100644
--- a/doc/backup-cloud.md
+++ b/doc/backup-cloud.md
@@ -68,7 +68,7 @@ See also
--------
* [Send backup via e-mail](backup-email.md)
-* [Save configuration to fallback partition](doc/backup-partition.md)
+* [Save configuration to fallback partition](backup-partition.md)
* [Upload backup to server](backup-upload.md)
---
diff --git a/doc/backup-email.md b/doc/backup-email.md
index a506543..3b1dbb2 100644
--- a/doc/backup-email.md
+++ b/doc/backup-email.md
@@ -59,7 +59,7 @@ See also
--------
* [Upload backup to Mikrotik cloud](backup-cloud.md)
-* [Save configuration to fallback partition](doc/backup-partition.md)
+* [Save configuration to fallback partition](backup-partition.md)
* [Send notifications via e-mail](mod/notification-email.md)
* [Upload backup to server](backup-upload.md)
diff --git a/doc/backup-partition.md b/doc/backup-partition.md
index ba20657..1cef2c9 100644
--- a/doc/backup-partition.md
+++ b/doc/backup-partition.md
@@ -18,6 +18,8 @@ Description
This script saves the current configuration to fallback
[partition](https://wiki.mikrotik.com/wiki/Manual:Partitions).
+It can also copy-over the RouterOS installation when run interactively
+or just before a feature update.
For this to work you need a device with sufficient flash storage that is
properly partitioned.
@@ -26,9 +28,9 @@ To make you aware of a possible issue a scheduler logging a warning is
added in the backup partition's configuration. You may want to use
[log-forward](log-forward.md) to be notified.
-> ⚠️ **Warning**: Only the configuration is saved to backup partition.
-> Every now and then you should copy your installation over for a recent
-> RouterOS version!
+> ⚠️ **Warning**: By default only the configuration is saved to backup
+> partition. Every now and then you should copy your installation over
+> for a recent RouterOS version! See below for options.
Requirements and installation
-----------------------------
@@ -37,6 +39,18 @@ Just install the script:
$ScriptInstallUpdate backup-partition;
+Configuration
+-------------
+
+The configuration goes to `global-config-overlay`, the only parameter is:
+
+* `BackupPartitionCopyBeforeFeatureUpdate`: copy-over the RouterOS
+ installation when a feature update is pending
+
+> ℹ️ **Info**: Copy relevant configuration from
+> [`global-config`](../global-config.rsc) (the one without `-overlay`) to
+> your local `global-config-overlay` and modify it to your specific needs.
+
Usage and invocation
--------------------
@@ -44,6 +58,9 @@ Just run the script:
/system/script/run backup-partition;
+When run interactively from terminal it supports to copy-over the RouterOS
+installation when versions differ.
+
Creating a scheduler may be an option:
/system/scheduler/add interval=1w name=backup-partition on-event="/system/script/run backup-partition;" start-time=09:30:00;
diff --git a/doc/backup-upload.md b/doc/backup-upload.md
index f524adb..c44217c 100644
--- a/doc/backup-upload.md
+++ b/doc/backup-upload.md
@@ -85,7 +85,7 @@ See also
* [Upload backup to Mikrotik cloud](backup-cloud.md)
* [Send backup via e-mail](backup-email.md)
-* [Save configuration to fallback partition](doc/backup-partition.md)
+* [Save configuration to fallback partition](backup-partition.md)
---
[⬅️ Go back to main README](../README.md)
diff --git a/doc/telegram-chat.md b/doc/telegram-chat.md
index eb4acf5..1e6f70f 100644
--- a/doc/telegram-chat.md
+++ b/doc/telegram-chat.md
@@ -4,7 +4,7 @@ Chat with your router and send commands via Telegram bot
[![GitHub stars](https://img.shields.io/github/stars/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=red)](https://github.com/eworm-de/routeros-scripts/stargazers)
[![GitHub forks](https://img.shields.io/github/forks/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=green)](https://github.com/eworm-de/routeros-scripts/network)
[![GitHub watchers](https://img.shields.io/github/watchers/eworm-de/routeros-scripts?logo=GitHub&style=flat&color=blue)](https://github.com/eworm-de/routeros-scripts/watchers)
-[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.13-yellow?style=flat)](https://mikrotik.com/download/changelogs/)
+[![required RouterOS version](https://img.shields.io/badge/RouterOS-7.15-yellow?style=flat)](https://mikrotik.com/download/changelogs/)
[![Telegram group @routeros_scripts](https://img.shields.io/badge/Telegram-%40routeros__scripts-%2326A5E4?logo=telegram&style=flat)](https://t.me/routeros_scripts)
[![donate with PayPal](https://img.shields.io/badge/Like_it%3F-Donate!-orange?logo=githubsponsors&logoColor=orange&style=flat)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=A4ZXBD6YS2W8J)
diff --git a/global-config.rsc b/global-config.rsc
index 646eddb..8a42b81 100644
--- a/global-config.rsc
+++ b/global-config.rsc
@@ -85,6 +85,8 @@
:global BackupUploadUrl "sftp://example.com/backup/";
:global BackupUploadUser "mikrotik";
:global BackupUploadPass "v3ry-s3cr3t";
+# Copy the RouterOS installation to backup partition before feature update.
+:global BackupPartitionCopyBeforeFeatureUpdate false;
# This defines the settings for firewall address-lists (fw-addr-lists).
:global FwAddrLists {
diff --git a/global-functions.rsc b/global-functions.rsc
index f890376..447d6e9 100644
--- a/global-functions.rsc
+++ b/global-functions.rsc
@@ -12,7 +12,7 @@
:local ScriptName [ :jobname ];
# expected configuration version
-:global ExpectedConfigVersion 128;
+:global ExpectedConfigVersion 129;
# global variables not to be changed by user
:global GlobalFunctionsReady false;
@@ -229,7 +229,7 @@
:for I from=0 to=([ :len $Input ] - 1) do={
:local Char [ :pick $Input $I ];
- :if ([ :typeof [ find "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-" $Char ] ] = "nil") do={
+ :if ([ :typeof [ find "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" $Char ] ] = "nil") do={
:do {
:if ([ :len $Return ] = 0) do={
:error true;
@@ -685,10 +685,10 @@
:return true;
}
+ :local Uptime [ /system/resource/get uptime ];
:if ([ :typeof $IsTimeSyncResetNtp ] = "nothing") do={
- :set IsTimeSyncResetNtp 0s;
+ :set IsTimeSyncResetNtp $Uptime;
}
- :local Uptime [ /system/resource/get uptime ];
:if ($Uptime - $IsTimeSyncResetNtp < 3m) do={
:return false;
}
diff --git a/news-and-changes.rsc b/news-and-changes.rsc
index 13a358f..b20bbaf 100644
--- a/news-and-changes.rsc
+++ b/news-and-changes.rsc
@@ -53,6 +53,7 @@
126="Made 'telegram-chat' capable of handling large command output. Telegram messages still limit the size, so it is truncated now.";
127="Added support for authentication to Ntfy notification module.";
128="Added another list from blocklist.de to default configuration for 'fw-addr-lists'.";
+ 129="Extended 'backup-partition' to support RouterOS copy-over - interactively or before feature update.";
};
# Migration steps to be applied on script updates
diff --git a/telegram-chat.rsc b/telegram-chat.rsc
index f8dcd42..086718f 100644
--- a/telegram-chat.rsc
+++ b/telegram-chat.rsc
@@ -3,7 +3,7 @@
# Copyright (c) 2023-2024 Christian Hesse <mail@eworm.de>
# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
#
-# requires RouterOS, version=7.13
+# requires RouterOS, version=7.15
#
# use Telegram to chat with your Router and send commands
# https://git.eworm.de/cgit/routeros-scripts/about/doc/telegram-chat.md
@@ -97,6 +97,7 @@
:local Trusted false;
:local Chat ($Message->"chat");
:local From ($Message->"from");
+ :local Command ($Message->"text");
:foreach IdsTrusted in=($TelegramChatId, $TelegramChatIdsTrusted) do={
:if ($From->"id" = $IdsTrusted || $From->"username" = $IdsTrusted) do={
@@ -106,15 +107,15 @@
:if ($Trusted = true) do={
:local Done false;
- :if ($Message->"text" = "?") do={
+ :if ($Command = "?") do={
$LogPrint info $ScriptName ("Sending notice for update " . $UpdateID . ".");
$SendTelegram2 ({ origin=$ScriptName; chatid=($Chat->"id"); silent=true; replyto=($Message->"message_id"); \
subject=([ $SymbolForNotification "speech-balloon" ] . "Telegram Chat"); \
message=("Online" . [ $IfThenElse $TelegramChatActive " (and active!)" ] . ", awaiting your commands!") });
:set Done true;
}
- :if ($Done = false && [ :pick ($Message->"text") 0 1 ] = "!") do={
- :if ($Message->"text" ~ ("^! *(" . [ $EscapeForRegEx $Identity ] . "|@" . $TelegramChatGroups . ")\$")) do={
+ :if ($Done = false && [ :pick $Command 0 1 ] = "!") do={
+ :if ($Command ~ ("^! *(" . [ $EscapeForRegEx $Identity ] . "|@" . $TelegramChatGroups . ")\$")) do={
:set TelegramChatActive true;
} else={
:set TelegramChatActive false;
@@ -123,16 +124,16 @@
" from update " . $UpdateID . "!");
:set Done true;
}
- :if ($Done = false && ($IsMyReply = 1 || ($IsReply = 0 && $TelegramChatActive = true)) && [ :len ($Message->"text") ] > 0) do={
- :if ([ $ValidateSyntax ($Message->"text") ] = true) do={
+ :if ($Done = false && ($IsMyReply = 1 || ($IsReply = 0 && $TelegramChatActive = true)) && [ :len $Command ] > 0) do={
+ :if ([ $ValidateSyntax $Command ] = true) do={
:local State "";
:local File ("tmpfs/telegram-chat/" . [ $GetRandom20CharAlNum 6 ]);
:if ([ $MkDir "tmpfs/telegram-chat" ] = false) do={
$LogPrint error $ScriptName ("Failed creating directory!");
:error false;
}
- $LogPrint info $ScriptName ("Running command from update " . $UpdateID . ": " . $Message->"text");
- :execute script=(":do {\n" . $Message->"text" . "\n} on-error={ /file/add name=\"" . $File . ".failed\" };" . \
+ $LogPrint info $ScriptName ("Running command from update " . $UpdateID . ": " . $Command);
+ :execute script=(":do {\n" . $Command . "\n} on-error={ /file/add name=\"" . $File . ".failed\" };" . \
"/file/add name=\"" . $File . ".done\"") file=($File . "\00");
:if ([ $WaitForFile ($File . ".done") [ $EitherOr $TelegramChatRunTime 20s ] ] = false) do={
:set State ([ $SymbolForNotification "warning-sign" ] . "The command did not finish, still running in background.\n\n");
@@ -143,7 +144,7 @@
:local Content ([ /file/read chunk-size=32768 file=$File as-value ]->"data");
$SendTelegram2 ({ origin=$ScriptName; chatid=($Chat->"id"); silent=true; replyto=($Message->"message_id"); \
subject=([ $SymbolForNotification "speech-balloon" ] . "Telegram Chat"); \
- message=([ $SymbolForNotification "gear" ] . "Command:\n" . $Message->"text" . "\n\n" . \
+ message=([ $SymbolForNotification "gear" ] . "Command:\n" . $Command . "\n\n" . \
$State . [ $IfThenElse ([ :len $Content ] > 0) \
([ $SymbolForNotification "memo" ] . "Output:\n" . $Content) \
([ $SymbolForNotification "memo" ] . "No output.") ]) });
@@ -152,7 +153,7 @@
$LogPrint info $ScriptName ("The command from update " . $UpdateID . " failed syntax validation!");
$SendTelegram2 ({ origin=$ScriptName; chatid=($Chat->"id"); silent=false; replyto=($Message->"message_id"); \
subject=([ $SymbolForNotification "speech-balloon" ] . "Telegram Chat"); \
- message=([ $SymbolForNotification "gear" ] . "Command:\n" . $Message->"text" . "\n\n" . \
+ message=([ $SymbolForNotification "gear" ] . "Command:\n" . $Command . "\n\n" . \
[ $SymbolForNotification "cross-mark" ] . "The command failed syntax validation!") });
}
}
@@ -160,7 +161,7 @@
:local MessageText ("Received a message from untrusted contact " . \
[ $IfThenElse ([ :len ($From->"username") ] = 0) "without username" ("'" . $From->"username" . "'") ] . \
" (ID " . $From->"id" . ") in update " . $UpdateID . "!");
- :if ($Message->"text" ~ ("^! *" . [ $EscapeForRegEx $Identity ] . "\$")) do={
+ :if ($Command ~ ("^! *" . [ $EscapeForRegEx $Identity ] . "\$")) do={
$LogPrint warning $ScriptName $MessageText;
$SendTelegram2 ({ origin=$ScriptName; chatid=($Chat->"id"); silent=false; replyto=($Message->"message_id"); \
subject=([ $SymbolForNotification "speech-balloon" ] . "Telegram Chat"); \
diff --git a/unattended-lte-firmware-upgrade.rsc b/unattended-lte-firmware-upgrade.rsc
index 904f952..ba22c6f 100644
--- a/unattended-lte-firmware-upgrade.rsc
+++ b/unattended-lte-firmware-upgrade.rsc
@@ -10,7 +10,7 @@
:local Firmware;
:local IntName [ /interface/lte/get $Interface name ];
:do {
- :set Firmware [ /interface/lte/firmware-upgrade $Interface once as-value ];
+ :set Firmware [ /interface/lte/firmware-upgrade $Interface as-value ];
} on-error={
:log debug ("Could not get latest LTE firmware version for interface " . $IntName . ".");
}