From d100cac9ed37e4b79c587daf7c2bdba45c5c2ee7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:20:29 +0100 Subject: [PATCH 01/62] README: add a line break before command --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b0d26bd..529bb4c 100644 --- a/README.md +++ b/README.md @@ -77,7 +77,7 @@ download the certificates. > 💡️ **Hint**: RouterOS 7.19 comes with a builtin certificate store. You > can skip the steps regarding certificate download and import and jump > to [installation of scripts](#installation-of-scripts) if you set the -> trust for these builtin trust anchors: +> trust for these builtin trust anchors: > `/certificate/settings/set builtin-trust-anchors=trusted;` If you intend to download the scripts from a @@ -173,7 +173,7 @@ This last step is required when ever you make changes to your configuration. > ℹ️ **Info**: It is recommended to edit the configuration using the command > line interface. If using Winbox on Windows OS, the line endings may be -> missing. To fix this run: +> missing. To fix this run: > `/system/script/set source=[ :tocrlf [ get global-config-overlay source ] ] global-config-overlay;` Updating scripts From d32b05c8a2cb1565086a2af2f53b91763cd9b953 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:04:13 +0100 Subject: [PATCH 02/62] check-certificates: add missing semicolon --- check-certificates.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-certificates.rsc b/check-certificates.rsc index c10e33b..f2d5c1f 100644 --- a/check-certificates.rsc +++ b/check-certificates.rsc @@ -21,7 +21,7 @@ :global CertWarnTime; :global Identity; - :global CertificateAvailable + :global CertificateAvailable; :global EscapeForRegEx; :global IfThenElse; :global LogPrint; From 8cfc557ac94dc9fe6d943f093ae5d10319c9ecb0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:58:23 +0100 Subject: [PATCH 03/62] global-functions: $CertificateDownload: drop unused function --- global-functions.rsc | 1 - 1 file changed, 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 5ede654..3089d2e 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -161,7 +161,6 @@ :global ScriptUpdatesBaseUrl; :global ScriptUpdatesUrlSuffix; - :global CertificateAvailable; :global CertificateNameByCN; :global CleanName; :global FetchUserAgentStr; From 9967814c0d224df616321b59901124a5942457f1 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 30 Oct 2025 11:07:38 +0100 Subject: [PATCH 04/62] contrib/checksums: output to stdout... ... and let the Makefile redirect. --- Makefile | 2 +- contrib/checksums.sh | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 0265a51..d8f2387 100644 --- a/Makefile +++ b/Makefile @@ -33,7 +33,7 @@ all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json < $< > $@ checksums.json: contrib/checksums.sh *.rsc */*.rsc - contrib/checksums.sh + contrib/checksums.sh > $@ clean: rm -f $(HTML) checksums.json diff --git a/contrib/checksums.sh b/contrib/checksums.sh index b472b49..ab4e973 100755 --- a/contrib/checksums.sh +++ b/contrib/checksums.sh @@ -6,4 +6,4 @@ set -e md5sum $(find -name '*.rsc' | sort) | \ sed -e "s| \./||" -e 's|.rsc$||' | \ - jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' > 'checksums.json' + jq --raw-input --null-input '[ inputs | split (" ") | { (.[1]): (.[0]) }] | add' From bc21a145945a0287c7b55cc12ffdc0b6205514e4 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Sun, 2 Nov 2025 09:19:16 +0100 Subject: [PATCH 05/62] global-functions: $ScriptInstallUpdate: give hint on ignore Fixes: https://github.com/eworm-de/routeros-scripts/issues/112 --- global-functions.rsc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 3089d2e..b5fc0eb 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1313,6 +1313,11 @@ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; } + :if ([ :len ($ScriptInfo->"base-url") ] = 0 && [ :len ($ScriptInfo->"url-suffix") ] = 0 && \ + [ :len $CheckSum ] = 0) do={ + $LogPrintOnce warning $0 \ + ("Added the script manually? Skip updates with 'ignore=true' in comment."); + } :error false; } From 8af4fbb4626474ed721524ef2c7b85cab39329e7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 00:00:03 +0100 Subject: [PATCH 06/62] global-functions: $ScriptInstallUpdate: either or... ... but not both. --- global-functions.rsc | 1 + 1 file changed, 1 insertion(+) diff --git a/global-functions.rsc b/global-functions.rsc index b5fc0eb..2379f9b 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1312,6 +1312,7 @@ :if ($ScriptVal->"source" = "#!rsc by RouterOS\n") do={ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; + :error false; } :if ([ :len ($ScriptInfo->"base-url") ] = 0 && [ :len ($ScriptInfo->"url-suffix") ] = 0 && \ [ :len $CheckSum ] = 0) do={ From d6c0d0918b4261467e996c8abad09ceafdbc25a2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 3 Nov 2025 09:17:25 +0100 Subject: [PATCH 07/62] global-functions: $ScriptInstallUpdate: extra actions on 'not found' only --- global-functions.rsc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/global-functions.rsc b/global-functions.rsc index 2379f9b..eb837aa 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1309,6 +1309,10 @@ } } do={ $LogPrint warning $0 ("Failed fetching script '" . $ScriptVal->"name" . "': " . $Err); + :if ($Err != "Fetch failed with status 404") do={ + :error false; + } + :if ($ScriptVal->"source" = "#!rsc by RouterOS\n") do={ $LogPrint warning $0 ("Removing dummy. Typo on installation?"); /system/script/remove $Script; From e0e9dd9058164f58d320016508e3c1996d56b351 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:20:47 +0100 Subject: [PATCH 08/62] README: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 529bb4c..b77538d 100644 --- a/README.md +++ b/README.md @@ -78,7 +78,10 @@ download the certificates. > can skip the steps regarding certificate download and import and jump > to [installation of scripts](#installation-of-scripts) if you set the > trust for these builtin trust anchors: -> `/certificate/settings/set builtin-trust-anchors=trusted;` +> `/certificate/settings/set builtin-trust-anchors=trusted;` +> With RouterOS 7.21 the functionality was changed. Set this at minimum, +> but make sure not to drop other targets: +> `/certificate/settings/set builtin-trust-store=fetch;` If you intend to download the scripts from a different location (for example from github.com) install the corresponding From f78d747226b524b99dad8a01b551de7136a14154 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:38:31 +0100 Subject: [PATCH 09/62] INITIAL-COMMANDS: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- INITIAL-COMMANDS.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 40f609b..6e70b66 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -22,8 +22,11 @@ Run the complete base installation: :local CertFileName "ISRG-Root-X2.pem"; :local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470"; - :if (!(([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \ - [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={ + :local CertSettings [ /certificate/settings/get ]; + :if (!((($CertSettings->"builtin-trust-anchors") = "trusted" || \ + ($CertSettings->"builtin-trust-store") ~ "fetch" || \ + ($CertSettings->"builtin-trust-store") = "all") && \ + [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CertCommonName . "\" ] ]") ]] > 0)) do={ :put "Importing certificate..."; /tool/fetch ($BaseUrl . "certs/" . $CertFileName) dst-path=$CertFileName as-value; :delay 1s; From 50d9106e2f002470289c441bd4c75deced285a77 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:47:55 +0100 Subject: [PATCH 10/62] global-functions: $CertificateAvailable: support new builtin-trust-store... ... which was introduced with RouterOS 7.21beta7. --- global-functions.rsc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index eb837aa..9f92b07 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -106,11 +106,15 @@ # check and download required certificate :set CertificateAvailable do={ :local CommonName [ :tostr $1 ]; + :local UseFor [ :tostr $2 ]; :global CertificateDownload; + :global EitherOr; :global LogPrint; :global ParseKeyValueStore; + :set UseFor [ $EitherOr $UseFor "undefined" ]; + :if ([ /system/resource/get free-hdd-space ] < 8388608 && \ [ /certificate/settings/get crl-download ] = true && \ [ /certificate/settings/get crl-store ] = "system") do={ @@ -123,7 +127,10 @@ :return false; } - :if (([ /certificate/settings/get ]->"builtin-trust-anchors") = "trusted" && \ + :local CertSettings [ /certificate/settings/get ]; + :if ((($CertSettings->"builtin-trust-anchors") = "trusted" || \ + ($CertSettings->"builtin-trust-store") ~ $UseFor || \ + ($CertSettings->"builtin-trust-store") = "all") && \ [[ :parse (":return [ :len [ /certificate/builtin/find where common-name=\"" . $CommonName . "\" ] ]") ]] > 0) do={ :return true; } From 528edb7ea33baff4ebd79eb6d7a5c28383eeece6 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:59:28 +0100 Subject: [PATCH 11/62] global-functions: $DownloadPackage: define certificate use --- global-functions.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 9f92b07..412777c 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -404,7 +404,7 @@ :return true; } - :if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={ $LogPrint error $0 ("Downloading required certificate failed."); :return false; } From 25e20dc0efe06f07ca42f7ec4c8adf88b7d59711 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:01:11 +0100 Subject: [PATCH 12/62] global-functions: $GetMacVendor: define certificate use --- global-functions.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global-functions.rsc b/global-functions.rsc index 412777c..d4c37a2 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -640,7 +640,7 @@ } :do { - :if ([ $CertificateAvailable "GTS Root R4" ] = false) do={ + :if ([ $CertificateAvailable "GTS Root R4" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From 2d048d6e118602d858d0d2d2cbb945bf7d63d155 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:01:57 +0100 Subject: [PATCH 13/62] global-functions: $ScriptInstallUpdate: define certificate use --- global-functions.rsc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index d4c37a2..48aaf7f 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -1248,7 +1248,7 @@ :global SymbolForNotification; :global ValidateSyntax; - :if ([ $CertificateAvailable "ISRG Root X2" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading certificate failed, trying without."); } @@ -1299,7 +1299,7 @@ } :if ([ :len ($ScriptInfo->"certificate") ] > 0) do={ - :if ([ $CertificateAvailable ($ScriptInfo->"certificate") ] = false) do={ + :if ([ $CertificateAvailable ($ScriptInfo->"certificate") "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading certificate failed, trying without."); } } From 468e2994c9ef870e70ee56bdd9d1755b6d9d4ed8 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:05:10 +0100 Subject: [PATCH 14/62] check-certificates: define certificate use --- check-certificates.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/check-certificates.rsc b/check-certificates.rsc index f2d5c1f..3300bee 100644 --- a/check-certificates.rsc +++ b/check-certificates.rsc @@ -189,7 +189,7 @@ fingerprint!=[ :tostr ($CertVal->"fingerprint") ] expires-after>$CertRenewTime ]; :local CertNewVal [ /certificate/get $CertNew ]; - :if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") ] = false) do={ + :if ([ $CertificateAvailable ([ $ParseKeyValueStore ($CertNewVal->"issuer") ]->"CN") "fetch" ] = false) do={ $LogPrint warning $ScriptName ("The certificate chain is not available!"); } From 3c695a672145984bb17d7cc0c751d0cbc9357c13 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:06:03 +0100 Subject: [PATCH 15/62] fw-addr-lists: define certificate use --- fw-addr-lists.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc index c85cc8b..e5a71aa 100644 --- a/fw-addr-lists.rsc +++ b/fw-addr-lists.rsc @@ -74,7 +74,7 @@ :if ([ :len ($List->"cert") ] > 0) do={ :set CheckCertificate true; - :if ([ $CertificateAvailable ($List->"cert") ] = false) do={ + :if ([ $CertificateAvailable ($List->"cert") "fetch" ] = false) do={ $LogPrint warning $ScriptName ("Downloading required certificate (" . $FwListName . \ " / " . $List->"url" . ") failed, trying anyway."); } From 21c19a72a5d7df948ab9c669820cedd10e4c3607 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:10:22 +0100 Subject: [PATCH 16/62] mod/notification-ntfy: define certificate use --- mod/notification-ntfy.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mod/notification-ntfy.rsc b/mod/notification-ntfy.rsc index 7114020..dd10812 100644 --- a/mod/notification-ntfy.rsc +++ b/mod/notification-ntfy.rsc @@ -109,7 +109,7 @@ :onerror Err { :if ($Server = "ntfy.sh") do={ - :if ([ $CertificateAvailable "ISRG Root X1" ] = false) do={ + :if ([ $CertificateAvailable "ISRG Root X1" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From e29d9bc603ac5e81a938025aaa26759faa97f91a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:09:43 +0100 Subject: [PATCH 17/62] mod/notification-telegram: define certificate use --- mod/notification-telegram.rsc | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mod/notification-telegram.rsc b/mod/notification-telegram.rsc index ff9b4da..b1996a3 100644 --- a/mod/notification-telegram.rsc +++ b/mod/notification-telegram.rsc @@ -30,7 +30,7 @@ :return false; } - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } @@ -72,7 +72,7 @@ :global CertificateAvailable; :global LogPrint; - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :return false; } @@ -197,7 +197,7 @@ "&reply_to_message_id=" . ($Notification->"replyto") . "&message_thread_id=" . $ThreadId . \ "&disable_web_page_preview=true&parse_mode=MarkdownV2"); :onerror Err { - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $0 ("Downloading required certificate failed."); :error false; } From 3e18e645d1c3b090b226fd52b26964eff8a9ec27 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:07:22 +0100 Subject: [PATCH 18/62] netwatch-dns: define certificate use --- netwatch-dns.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netwatch-dns.rsc b/netwatch-dns.rsc index 9e2f9bc..eee5f85 100644 --- a/netwatch-dns.rsc +++ b/netwatch-dns.rsc @@ -112,7 +112,7 @@ :foreach DohServer in=$DohServers do={ :if ([ :len ($DohServer->"doh-cert") ] > 0) do={ - :if ([ $CertificateAvailable ($DohServer->"doh-cert") ] = false) do={ + :if ([ $CertificateAvailable ($DohServer->"doh-cert") "dns" ] = false) do={ $LogPrint warning $ScriptName ("Downloading certificate failed, trying without."); } } From f7f97a458bd6e9faf6b70fe8d66b233bb537f7b7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:10:58 +0100 Subject: [PATCH 19/62] telegram-chat: define certificate use --- telegram-chat.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/telegram-chat.rsc b/telegram-chat.rsc index 7f7b7a7..54872fb 100644 --- a/telegram-chat.rsc +++ b/telegram-chat.rsc @@ -61,7 +61,7 @@ :set TelegramRandomDelay 0; } - :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Go Daddy Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint warning $ScriptName ("Downloading required certificate failed."); :set ExitOK true; :error false; From be362c8da75bc66cb1eb2439f1cf981c6d5dbe00 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:03:33 +0100 Subject: [PATCH 20/62] update-tunnelbroker: define certificate use --- update-tunnelbroker.rsc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update-tunnelbroker.rsc b/update-tunnelbroker.rsc index 9057e1e..5372f4c 100644 --- a/update-tunnelbroker.rsc +++ b/update-tunnelbroker.rsc @@ -28,7 +28,7 @@ :error false; } - :if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" ] = false) do={ + :if ([ $CertificateAvailable "Starfield Root Certificate Authority - G2" "fetch" ] = false) do={ $LogPrint error $ScriptName ("Downloading required certificate failed."); :set ExitOK true; :error false; From c97ba60ca04a09b7ab3b22b31eef071542e546f2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:11:38 +0100 Subject: [PATCH 21/62] CERTIFICATES: define certificate use --- CERTIFICATES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CERTIFICATES.md b/CERTIFICATES.md index 69d6c18..0e0a867 100644 --- a/CERTIFICATES.md +++ b/CERTIFICATES.md @@ -61,7 +61,7 @@ Import a certificate by CommonName Running the function `$CertificateAvailable` with that name as parameter makes sure the certificate is available in the device's store: - $CertificateAvailable "ISRG Root X2"; + $CertificateAvailable "ISRG Root X2" "fetch"; If the certificate is actually available already nothing happens, and there is no output. Otherwise the certificate is downloaded and imported. From ae560a548c8a06ac30070a00a8dbc313e0c13ca9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 12:08:49 +0100 Subject: [PATCH 22/62] doc/mod/notification-matrix: define certificate use --- doc/mod/notification-matrix.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mod/notification-matrix.md b/doc/mod/notification-matrix.md index da6d6de..ad4cf4f 100644 --- a/doc/mod/notification-matrix.md +++ b/doc/mod/notification-matrix.md @@ -49,7 +49,7 @@ your server in device's certificate store. The example below is for `matrix.org`, which uses a trust chain from *Google Trust Services*. Run this to import the required certificate: - $CertificateAvailable "GTS Root R4"; + $CertificateAvailable "GTS Root R4" "fetch"; Replace the CA certificate name with what ever is needed for your server. You may want to find the From 5f0005baaf48e8f2424dc6c7d63e707d7dc1990b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:19:44 +0100 Subject: [PATCH 23/62] README: move the QR code --- README.md | 2 +- README.d/upstream.png => general/qr-code.png | Bin 2 files changed, 1 insertion(+), 1 deletion(-) rename README.d/upstream.png => general/qr-code.png (100%) diff --git a/README.md b/README.md index b77538d..36408ec 100644 --- a/README.md +++ b/README.md @@ -404,7 +404,7 @@ immediately remove the link in question. Upstream -------- -[![upstream](README.d/upstream.png)](https://rsc.eworm.de/) +[![upstream](general/qr-code.png)](https://rsc.eworm.de/) URL: [GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) diff --git a/README.d/upstream.png b/general/qr-code.png similarity index 100% rename from README.d/upstream.png rename to general/qr-code.png From 9ab7d0a43b3331465c654be2525212ae5f4ffd77 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:19:15 +0100 Subject: [PATCH 24/62] README: add the upstream url verbatim --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 36408ec..3c69017 100644 --- a/README.md +++ b/README.md @@ -404,6 +404,8 @@ immediately remove the link in question. Upstream -------- +[rsc.eworm.de](https://rsc.eworm.de/) + [![upstream](general/qr-code.png)](https://rsc.eworm.de/) URL: From fcc413ea26017993a5259a66cdfe601e6788d6ea Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:16:04 +0100 Subject: [PATCH 25/62] README: add a sub-section for code hosting --- README.md | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 3c69017..f751d02 100644 --- a/README.md +++ b/README.md @@ -408,12 +408,11 @@ Upstream [![upstream](general/qr-code.png)](https://rsc.eworm.de/) -URL: -[GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) +### Code hosting -Mirror: -[eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/) -[GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts) +* [eworm.de](https://git.eworm.de/cgit/routeros-scripts/about/) +* [GitHub.com](https://github.com/eworm-de/routeros-scripts#routeros-scripts) +* [GitLab.com](https://gitlab.com/eworm-de/routeros-scripts#routeros-scripts) --- [⬆️ Go back to top](#top) From 128dfe0ff1a90ea0b6eb565a1f64b363088ab41e Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 13:37:51 +0100 Subject: [PATCH 26/62] contrib/html: add empty lines... ... for easier rebasing. --- contrib/html.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contrib/html.sh b/contrib/html.sh index bbd8ba8..6942ecf 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -3,7 +3,9 @@ set -e sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html" + markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ -e '/| id="\L\1">|' + printf '' From 480e36bcf3ec4366de16ed9e88034598ccb55ad9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:31:17 +0100 Subject: [PATCH 27/62] contrib/{logo-color,notification}: use a single style --- contrib/logo-color.d/style.css | 5 ----- contrib/logo-color.html | 2 +- contrib/notification.html | 4 ++-- {contrib/notification.d => general}/style.css | 3 ++- 4 files changed, 5 insertions(+), 9 deletions(-) delete mode 100644 contrib/logo-color.d/style.css rename {contrib/notification.d => general}/style.css (93%) diff --git a/contrib/logo-color.d/style.css b/contrib/logo-color.d/style.css deleted file mode 100644 index eb2ec6a..0000000 --- a/contrib/logo-color.d/style.css +++ /dev/null @@ -1,5 +0,0 @@ -body { - font-family: fira-sans, sans-serif; - font-size: 10pt; - background-color: transparent; -} diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 17942ce..507445b 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -3,7 +3,7 @@ RouterOS-Scripts Logo Color Changer - + diff --git a/contrib/notification.html b/contrib/notification.html index 7875036..b7d6764 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -3,8 +3,8 @@ RouterOS-Scripts Notification Generator - - + + diff --git a/contrib/notification.d/style.css b/general/style.css similarity index 93% rename from contrib/notification.d/style.css rename to general/style.css index 648ea23..66d44f1 100644 --- a/contrib/notification.d/style.css +++ b/general/style.css @@ -1,7 +1,8 @@ +/* stylesheet for RouterOS Scripts */ body { + background-color: transparent; font-family: fira-sans, sans-serif; font-size: 10pt; - background-color: transparent; } div.notification { position: relative; From bfa0148c9d4bf4dd1305e875829378dc343d4ba3 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:46:01 +0100 Subject: [PATCH 28/62] contrib/html: include stylesheet via link --- Makefile | 2 +- contrib/html.sh | 7 ++++++- contrib/html.sh.d/head.html | 11 +---------- general/style.css | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 40 insertions(+), 12 deletions(-) diff --git a/Makefile b/Makefile index d8f2387..b799535 100644 --- a/Makefile +++ b/Makefile @@ -11,7 +11,7 @@ HTML = $(MARKDOWN:.md=.html) all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json -%.html: %.md contrib/html.sh contrib/html.sh.d/head.html +%.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh $< > $@ %.capsman.rsc: %.template.rsc Makefile diff --git a/contrib/html.sh b/contrib/html.sh index 6942ecf..6a32b5d 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -2,7 +2,12 @@ set -e -sed "s|__TITLE__|$(head -n1 "${1}")|" < "${0}.d/head.html" +RELTO="$(dirname "${1}")" + +sed \ + -e "s|__TITLE__|$(head -n1 "${1}")|" \ + -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ + < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 1b1dd03..50653ae 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -1,15 +1,6 @@ RouterOS Scripts :: __TITLE__ - + diff --git a/general/style.css b/general/style.css index 66d44f1..be67afa 100644 --- a/general/style.css +++ b/general/style.css @@ -4,6 +4,28 @@ body { font-family: fira-sans, sans-serif; font-size: 10pt; } +h2 { + border-bottom: 1px solid #ccc; + color: #000; +} +a { + text-decoration: none; +} +a:hover { + text-decoration: underline; +} +blockquote { + border-left: 4px solid #ccc; + padding: 0 10px; + color: #777; +} +code { + margin: 0 2px; + padding: 2px 5px; + border: 1px solid #ccc; + background-color: #f8f8f8; + border-radius: 3px; +} div.notification { position: relative; float: right; @@ -31,6 +53,16 @@ p.hint { pre { font-family: fira-mono, monospace; white-space: pre-wrap; + background-color: #f8f8f8; + border: 1px solid #ccc; + overflow: auto; + padding: 6px 10px; + border-radius: 3px; +} +pre code { + margin: 0; + padding: 0; + border: 0; } span.link { color: #863600; From db19c4cb435420d5fd87f5ec8cbd910d18ba4e87 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 12:51:34 +0100 Subject: [PATCH 29/62] contrib/html: add a margin on left and right... ... for windows in landscape (wider than high). Also make the notification float right for landscape only. --- general/style.css | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/general/style.css b/general/style.css index be67afa..a9ede5e 100644 --- a/general/style.css +++ b/general/style.css @@ -28,7 +28,7 @@ code { } div.notification { position: relative; - float: right; + float: none; width: 600px; border: 3px outset #6c5d53; /* border-radius: 5px; */ @@ -67,3 +67,12 @@ pre code { span.link { color: #863600; } +@media only screen and (orientation: landscape) { + body { + margin-left: 10vw; + margin-right: 10vw; + } + div.notification { + float: right; + } +} From 42568988cf17276ba9e716ad302d36e7fd3b48ec Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Mon, 10 Nov 2025 11:30:49 +0100 Subject: [PATCH 30/62] contrib/html: increase default line height --- general/style.css | 1 + 1 file changed, 1 insertion(+) diff --git a/general/style.css b/general/style.css index a9ede5e..ad25c7c 100644 --- a/general/style.css +++ b/general/style.css @@ -3,6 +3,7 @@ body { background-color: transparent; font-family: fira-sans, sans-serif; font-size: 10pt; + line-height: 1.6; } h2 { border-bottom: 1px solid #ccc; From bbc4bec9666deef1c0e13c73438a2fe3ff2868f4 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 14:55:00 +0100 Subject: [PATCH 31/62] contrib/html: link the logo with relative path --- contrib/html.sh | 1 + contrib/html.sh.d/head.html | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index 6a32b5d..d4a1a90 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -7,6 +7,7 @@ RELTO="$(dirname "${1}")" sed \ -e "s|__TITLE__|$(head -n1 "${1}")|" \ -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ + -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 50653ae..779e246 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -2,5 +2,5 @@ RouterOS Scripts :: __TITLE__ - + From 249706a01c555a52cfdd9a73b4705057b010631d Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 22:34:00 +0100 Subject: [PATCH 32/62] contrib/html: properly handle anchors --- contrib/html.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index d4a1a90..603e606 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -11,7 +11,7 @@ sed \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ - -e 's/href="\([-_\./[:alnum:]]*\)\.md"/href="\1.html"/g' \ + -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' printf '' From 6dbdc82e228eef4d2323a523411f5efa170b3a13 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 22:57:17 +0100 Subject: [PATCH 33/62] contrib/html: drop comma & ampersand from id/anchor --- contrib/html.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index 603e606..ae20b9e 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -12,6 +12,7 @@ sed \ markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ - -e '/| id="\L\1">|' + -e '/| id="\L\1">|' \ + -e '/' From 3217ad1578776f616012496f1673be1e3380c6a0 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 15:19:32 +0100 Subject: [PATCH 34/62] contrib/*: unify html code --- contrib/html.sh.d/head.html | 4 ++-- contrib/logo-color.html | 17 +++++++---------- contrib/notification.html | 17 +++++++---------- doc/mod/notification-telegram.md | 2 +- 4 files changed, 17 insertions(+), 23 deletions(-) diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 779e246..0ce3ff7 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -1,6 +1,6 @@ -RouterOS Scripts :: __TITLE__ - + +RouterOS Scripts :: __TITLE__ diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 507445b..eb00492 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -1,14 +1,12 @@ - - - - -RouterOS-Scripts Logo Color Changer + + +RouterOS Scripts :: Logo Color Changer + - - + -

RouterOS-Scripts Logo Color Changer

+

Logo Color Changer

You want the logo for your own notifications? But you joined the Telegram Group and want @@ -36,5 +34,4 @@ for other browsers may differ.)

Set a profile photo for your Telegram bot.

- - + diff --git a/contrib/notification.html b/contrib/notification.html index b7d6764..472ce48 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -1,14 +1,12 @@ - - - - -RouterOS-Scripts Notification Generator + + +RouterOS Scripts :: Notification Generator + - - + -

RouterOS-Scripts Notification Generator

+

Notification Generator

@@ -31,5 +29,4 @@

Then right-click, click "Take Screenshot" and finally select the notification and download it.

- - + diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 804104f..7d5092d 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -107,7 +107,7 @@ chat with [BotFather ↗️](https://t.me/BotFather) and set it there. ![set profile photo](notification-telegram.d/setuserpic.avif) Have a look at my -[RouterOS-Scripts Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) +[Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) to create a colored version of this scripts' logo. See also From c51c3e7a4768c9c40187f582a4d10ebce20f4264 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 15:35:14 +0100 Subject: [PATCH 35/62] contrib/{logo-color,notification}: add navigation structure --- contrib/logo-color.html | 6 ++++++ contrib/notification.html | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index eb00492..8ee1ba9 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -8,6 +8,8 @@

Logo Color Changer

+

⬅️ Go back to main README

+

You want the logo for your own notifications? But you joined the Telegram Group and want something that differentiates? Color it!

@@ -34,4 +36,8 @@ for other browsers may differ.)

Set a profile photo for your Telegram bot.

+
+ +

⬅️ Go back to main README
+⬆️ Go back to top

diff --git a/contrib/notification.html b/contrib/notification.html index 472ce48..3bc86fc 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -8,6 +8,8 @@

Notification Generator

+

⬅️ Go back to main README

+
@@ -29,4 +31,8 @@

Then right-click, click "Take Screenshot" and finally select the notification and download it.

+
+ +

⬅️ Go back to main README
+⬆️ Go back to top

From 9ac349e1701634a400a5adada885c018f2be90ac Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 16:06:42 +0100 Subject: [PATCH 36/62] contrib/notification: update date format --- contrib/notification.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/notification.html b/contrib/notification.html index 3bc86fc..c86450c 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -16,7 +16,7 @@

[MikroTik] ℹ️ Subject

Message
-

⏰ This message was queued since oct/18/2022 18:30:48 and may be obsolete.

+

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

✂️ The message was too long and has been truncated, cut off 13%!

@@ -25,7 +25,7 @@

Subject:

Message:

Show link:

-

Queued since

+

Queued since

Cut-off with percent

Then right-click, click "Take Screenshot" and finally select the From f9bbe0e7af70a10596dea94733b7cf6426bfdb9e Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 29 Oct 2025 16:11:23 +0100 Subject: [PATCH 37/62] contrib/notification: format the values italic --- contrib/notification.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contrib/notification.html b/contrib/notification.html index c86450c..a4d0486 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -16,8 +16,8 @@

[MikroTik] ℹ️ Subject

Message
-

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

-

✂️ The message was too long and has been truncated, cut off 13%!

+

⏰ This message was queued since 2025-10-29 16:06:18 and may be obsolete.

+

✂️ The message was too long and has been truncated, cut off 13%!

From 0c7ec83d7c9555caa335491b91c505274b60b28c Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:25:01 +0100 Subject: [PATCH 38/62] doc/mod/notification-telegram: use relative reference in link This may break, depending on site. --- doc/mod/notification-telegram.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index 7d5092d..bdf1331 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -106,8 +106,7 @@ chat with [BotFather ↗️](https://t.me/BotFather) and set it there. ![set profile photo](notification-telegram.d/setuserpic.avif) -Have a look at my -[Logo Color Changer](https://git.eworm.de/cgit/routeros-scripts/plain/contrib/logo-color.html) +Have a look at my [Logo Color Changer](../../contrib/logo-color.html) to create a colored version of this scripts' logo. See also From 0f55f1b703ad7de56d855597a5f4e0be1634646a Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:27:59 +0100 Subject: [PATCH 39/62] contrib/logo-color: use relative reference in link ... without extra path elements. This may break, depending on site. --- contrib/logo-color.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 8ee1ba9..9962e99 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -33,7 +33,7 @@ logo and download it.

for other browsers may differ.)

See how to -Set +Set a profile photo for your Telegram bot.


From 52fabebd5c4e8a781d8e30cdca5d46ba6302135b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 16:26:05 +0100 Subject: [PATCH 40/62] contrib: introduce Makefile... ... and update references in links. --- contrib/Makefile | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 contrib/Makefile diff --git a/contrib/Makefile b/contrib/Makefile new file mode 100644 index 0000000..aae3178 --- /dev/null +++ b/contrib/Makefile @@ -0,0 +1,10 @@ +# Makefile + +HTML := $(wildcard *.html) + +.PHONY: all docs + +all: docs + +docs: $(HTML) + sed -i '/href=/s|\.md|\.html|' $(HTML) From f614a92bafb9bee3dc0f5e738ffb1e4ba93c5575 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:40:27 +0100 Subject: [PATCH 41/62] doc/mod/notification-telegram: hint on possibly broken link --- doc/mod/notification-telegram.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/mod/notification-telegram.md b/doc/mod/notification-telegram.md index bdf1331..f464ff0 100644 --- a/doc/mod/notification-telegram.md +++ b/doc/mod/notification-telegram.md @@ -109,6 +109,10 @@ chat with [BotFather ↗️](https://t.me/BotFather) and set it there. Have a look at my [Logo Color Changer](../../contrib/logo-color.html) to create a colored version of this scripts' logo. +> 💡️ **Hint**: The above link may be broken on code hosting sites. +> Use [Logo Color Changer](https://rsc.eworm.de/main/contrib/logo-color.html) +> instead. + See also -------- From 7a52d17b2aa6b7ebc40f944032cf1b7e35da7304 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:59:08 +0100 Subject: [PATCH 42/62] contrib/html: hide the hint on broken link --- contrib/html.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/html.sh b/contrib/html.sh index ae20b9e..40723d4 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -13,6 +13,7 @@ sed \ markdown -f toc,idanchor "${1}" | sed \ -e 's/href="\([-_\./[:alnum:]]*\)\.md\(#[-[:alnum:]]*\)\?"/href="\1.html\2"/g' \ -e '/| id="\L\1">|' \ - -e '/' From 25b5423239c629ae9a809bd337782e26576b45a3 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:51:05 +0100 Subject: [PATCH 43/62] contrib/logo-color: hint on possibly broken site --- contrib/logo-color.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 9962e99..f05f4bb 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -10,6 +10,11 @@

⬅️ Go back to main README

+

💡️ Hint: This site or links +on it may be broken on code hosting sites. Use +Logo Color Changer +instead.

+

You want the logo for your own notifications? But you joined the Telegram Group and want something that differentiates? Color it!

From 3240d27945b0ffc908ea20a4e2e23b1ce9922fb8 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:52:58 +0100 Subject: [PATCH 44/62] contrib/notification: hint on possibly broken site --- contrib/notification.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/contrib/notification.html b/contrib/notification.html index a4d0486..3ff8754 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -10,6 +10,11 @@

⬅️ Go back to main README

+

💡️ Hint: This site or links +on it may be broken on code hosting sites. Use +Notification Generator +instead.

+
From b314e07bcb1e4da9fad740f9d3910ba159e2497b Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:08:11 +0100 Subject: [PATCH 45/62] contrib/html: add a head with eworm, QR code and caption --- contrib/html.sh | 2 ++ contrib/html.sh.d/head.html | 9 +++++++++ general/eworm-meadow.avif | Bin 0 -> 3922 bytes general/style.css | 12 ++++++++++++ 4 files changed, 23 insertions(+) create mode 100644 general/eworm-meadow.avif diff --git a/contrib/html.sh b/contrib/html.sh index 40723d4..25d1e01 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -8,6 +8,8 @@ sed \ -e "s|__TITLE__|$(head -n1 "${1}")|" \ -e "s|__STYLE__|$(realpath --relative-to="${RELTO}" general/style.css)|" \ -e "s|__LOGO__|$(realpath --relative-to="${RELTO}" logo.png)|" \ + -e "s|__EWORM__|$(realpath --relative-to="${RELTO}" general/eworm-meadow.avif)|" \ + -e "s|__QR_CODE__|$(realpath --relative-to="${RELTO}" general/qr-code.png)|" \ < "${0}.d/head.html" markdown -f toc,idanchor "${1}" | sed \ diff --git a/contrib/html.sh.d/head.html b/contrib/html.sh.d/head.html index 0ce3ff7..da54157 100644 --- a/contrib/html.sh.d/head.html +++ b/contrib/html.sh.d/head.html @@ -4,3 +4,12 @@ + + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+ diff --git a/general/eworm-meadow.avif b/general/eworm-meadow.avif new file mode 100644 index 0000000000000000000000000000000000000000..f592d59b86c9d178954a09bfb30dd7b6268a3a0b GIT binary patch literal 3922 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 Ol=-JRBU@RH*#86W_XlVI literal 0 HcmV?d00001 diff --git a/general/style.css b/general/style.css index ad25c7c..018ccc4 100644 --- a/general/style.css +++ b/general/style.css @@ -68,6 +68,18 @@ pre code { span.link { color: #863600; } +td.head { + line-height: 1.2; + padding: 0 2em; +} +td.head .top { + font-size: 250%; + font-weight: bold; +} +td.head .bottom { + font-size: 125%; + color: #555; +} @media only screen and (orientation: landscape) { body { margin-left: 10vw; From 2c50b41c06064d73879fb8235177f6d33f9f09a9 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:56:16 +0100 Subject: [PATCH 46/62] contrib/Makefile: hide the hint on broken site --- contrib/Makefile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/contrib/Makefile b/contrib/Makefile index aae3178..56b8707 100644 --- a/contrib/Makefile +++ b/contrib/Makefile @@ -7,4 +7,6 @@ HTML := $(wildcard *.html) all: docs docs: $(HTML) - sed -i '/href=/s|\.md|\.html|' $(HTML) + sed -i -e '/href=/s|\.md|\.html|' \ + -e '/blockquote/s|/\*! display \*/|display: none;|' \ + $(HTML) From 26e080cf6f7647ee1328e9ba774576d893992496 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:26:37 +0100 Subject: [PATCH 47/62] contrib/logo-color: add a head with eworm, QR code and caption --- contrib/logo-color.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index f05f4bb..3aca324 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -6,6 +6,14 @@ + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+

Logo Color Changer

⬅️ Go back to main README

From 23db61ff7c5970f8ce11e4782f735583a7358f67 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 23:27:09 +0100 Subject: [PATCH 48/62] contrib/notification: add a head with eworm, QR code and caption --- contrib/notification.html | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/contrib/notification.html b/contrib/notification.html index 3ff8754..902d328 100644 --- a/contrib/notification.html +++ b/contrib/notification.html @@ -6,6 +6,14 @@ + + + + +
eworm on meadowQR code: rsc.eworm.deRouterOS Scripts
+ a collection of scripts for MikroTik RouterOS
+
+

Notification Generator

⬅️ Go back to main README

From 5de42390a2d0e02cb84a262bbb8a4def3312eb35 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 6 Nov 2025 17:32:37 +0100 Subject: [PATCH 49/62] Makefile: clean up and add phony targets --- Makefile | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index b799535..f841ca2 100644 --- a/Makefile +++ b/Makefile @@ -2,18 +2,28 @@ # template scripts -> final scripts # markdown files -> html files -CAPSMAN = $(wildcard *.capsman.rsc) -LOCAL = $(wildcard *.local.rsc) -WIFI = $(wildcard *.wifi.rsc) +ALL_RSC := $(wildcard *.rsc */*.rsc) +GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc) -MARKDOWN = $(wildcard *.md doc/*.md doc/mod/*.md) -HTML = $(MARKDOWN:.md=.html) +MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md) +HTML := $(MARKDOWN:.md=.html) -all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json +.PHONY: all checksums docs rsc clean + +all: checksums docs rsc + +checksums: checksums.json + +checksums.json: contrib/checksums.sh $(ALL_RSC) + contrib/checksums.sh > $@ + +docs: $(HTML) %.html: %.md general/style.css contrib/html.sh contrib/html.sh.d/head.html contrib/html.sh $< > $@ +rsc: $(GEN_RSC) + %.capsman.rsc: %.template.rsc Makefile sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \ -e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \ @@ -32,8 +42,5 @@ all: $(CAPSMAN) $(LOCAL) $(WIFI) $(HTML) checksums.json -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ < $< > $@ -checksums.json: contrib/checksums.sh *.rsc */*.rsc - contrib/checksums.sh > $@ - clean: rm -f $(HTML) checksums.json From 6e41f0ae128ccbb100a32954bc19ecfa8a80f7ba Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 17:22:30 +0100 Subject: [PATCH 50/62] contrib/html: add a footer --- Makefile | 4 ++++ contrib/html.sh | 5 ++++- contrib/html.sh.d/foot.html | 4 ++++ general/style.css | 4 ++++ 4 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 contrib/html.sh.d/foot.html diff --git a/Makefile b/Makefile index f841ca2..87db37d 100644 --- a/Makefile +++ b/Makefile @@ -8,6 +8,10 @@ GEN_RSC := $(wildcard *.capsman.rsc *.local.rsc *.wifi.rsc) MARKDOWN := $(wildcard *.md doc/*.md doc/mod/*.md) HTML := $(MARKDOWN:.md=.html) +DATE ?= $(shell date --rfc-email) +VERSION ?= $(shell git symbolic-ref --short HEAD 2>/dev/null)/$(shell git rev-list --count HEAD 2>/dev/null)/$(shell git rev-parse --short=8 HEAD 2>/dev/null) +export DATE VERSION + .PHONY: all checksums docs rsc clean all: checksums docs rsc diff --git a/contrib/html.sh b/contrib/html.sh index 25d1e01..dfdaf4a 100755 --- a/contrib/html.sh +++ b/contrib/html.sh @@ -18,4 +18,7 @@ markdown -f toc,idanchor "${1}" | sed \ -e '/' +sed \ + -e "s|__DATE__|${DATE:-$(date --rfc-email)}|" \ + -e "s|__VERSION__|${VERSION:-unknown}|" \ + < "${0}.d/foot.html" diff --git a/contrib/html.sh.d/foot.html b/contrib/html.sh.d/foot.html new file mode 100644 index 0000000..106c2bd --- /dev/null +++ b/contrib/html.sh.d/foot.html @@ -0,0 +1,4 @@ + +

RouterOS Scripts documentation generated on __DATE__ for __VERSION__

+ + diff --git a/general/style.css b/general/style.css index 018ccc4..73b0921 100644 --- a/general/style.css +++ b/general/style.css @@ -43,6 +43,10 @@ img.logo { float: left; border-radius: 50%; } +p.foot { + color: #777; + text-align: center; +} p.heading { margin: 0px; font-weight: bold; From 06044bb799b80ca2624837bb352672e216636e48 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 23:03:58 +0100 Subject: [PATCH 51/62] fw-addr-lists.d/{allow,block}: use short url rsc.eworm.de --- fw-addr-lists.d/allow | 2 +- fw-addr-lists.d/block | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/fw-addr-lists.d/allow b/fw-addr-lists.d/allow index 8b59ed7..f0239cd 100644 --- a/fw-addr-lists.d/allow +++ b/fw-addr-lists.d/allow @@ -1,3 +1,3 @@ # an ip address list for use with fw-addr-lists script -# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md +# https://rsc.eworm.de/doc/fw-addr-lists.md git.eworm.de diff --git a/fw-addr-lists.d/block b/fw-addr-lists.d/block index 5e9fef2..86a6c62 100644 --- a/fw-addr-lists.d/block +++ b/fw-addr-lists.d/block @@ -1,5 +1,5 @@ # an ip address list for use with fw-addr-lists script -# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md +# https://rsc.eworm.de/doc/fw-addr-lists.md # example.net 93.184.216.34 From 62a434048cc54a306a58c0e45f0b114567208d65 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Fri, 7 Nov 2025 23:05:56 +0100 Subject: [PATCH 52/62] fw-addr-lists.d/allow: use rsc.eworm.de in the list --- fw-addr-lists.d/allow | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fw-addr-lists.d/allow b/fw-addr-lists.d/allow index f0239cd..8c4ca3c 100644 --- a/fw-addr-lists.d/allow +++ b/fw-addr-lists.d/allow @@ -1,3 +1,3 @@ # an ip address list for use with fw-addr-lists script # https://rsc.eworm.de/doc/fw-addr-lists.md -git.eworm.de +rsc.eworm.de From 7744f1c93c1b4ed9eaedbd9b6e6512674bba5538 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:18:36 +0100 Subject: [PATCH 53/62] contrib/template-capsman: split off from Makefile --- Makefile | 7 ++----- contrib/template-capsman.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-capsman.sh diff --git a/Makefile b/Makefile index 87db37d..a4fa101 100644 --- a/Makefile +++ b/Makefile @@ -28,11 +28,8 @@ docs: $(HTML) rsc: $(GEN_RSC) -%.capsman.rsc: %.template.rsc Makefile - sed -e '/\/interface\/wifi\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.capsman|' \ - -e '/^# NOT \/caps-man\/ #$$/,/^# NOT \/caps-man\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.capsman.rsc: %.template.rsc contrib/template-capsman.sh + contrib/template-capsman.sh $< > $@ %.local.rsc: %.template.rsc Makefile sed -e '/\/caps-man\//d' -e '/\/interface\/wifi\//d' -e 's|%TEMPL%|.local|' \ diff --git a/contrib/template-capsman.sh b/contrib/template-capsman.sh new file mode 100755 index 0000000..5771b53 --- /dev/null +++ b/contrib/template-capsman.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/interface\/wifi\//d' \ + -e '/\/interface\/wireless\//d' \ + -e 's|%TEMPL%|.capsman|' \ + -e '/^# NOT \/caps-man\/ #$/,/^# NOT \/caps-man\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From ef0af91fc5be56a6748b7a61f8f5885c62600fa2 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 22:53:31 +0100 Subject: [PATCH 54/62] general/style: make the blockquote darker --- general/style.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/general/style.css b/general/style.css index 73b0921..ea9b111 100644 --- a/general/style.css +++ b/general/style.css @@ -18,7 +18,7 @@ a:hover { blockquote { border-left: 4px solid #ccc; padding: 0 10px; - color: #777; + color: #555; } code { margin: 0 2px; From 1558d6383abfa9d094e0496b781f3f047f8e6cdc Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:23:02 +0100 Subject: [PATCH 55/62] README: install from rsc.eworm.de --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f751d02..af9ef65 100644 --- a/README.md +++ b/README.md @@ -87,7 +87,7 @@ If you intend to download the scripts from a different location (for example from github.com) install the corresponding certificate chain. - /tool/fetch "https://git.eworm.de/cgit/routeros-scripts/plain/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem"; + /tool/fetch "https://rsc.eworm.de/main/certs/ISRG-Root-X2.pem" dst-path="isrg-root-x2.pem"; ![screenshot: download certs](README.d/01-download-certs.avif) @@ -125,7 +125,7 @@ date and time is set correctly! Now let's download the main scripts and add them in configuration on the fly. - :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://git.eworm.de/cgit/routeros-scripts/plain/" . $Script . ".rsc") output=user as-value]->"data"); }; + :foreach Script in={ "global-config"; "global-config-overlay"; "global-functions" } do={ /system/script/add name=$Script owner=$Script source=([ /tool/fetch check-certificate=yes-without-crl ("https://rsc.eworm.de/main/" . $Script . ".rsc") output=user as-value]->"data"); }; ![screenshot: import scripts](README.d/04-import-scripts.avif) From 8f7b6eba955b387a3d74d0844d17476ed77eb131 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:21:39 +0100 Subject: [PATCH 56/62] contrib/template-local: split off from Makefile --- Makefile | 7 ++----- contrib/template-local.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-local.sh diff --git a/Makefile b/Makefile index a4fa101..3de629c 100644 --- a/Makefile +++ b/Makefile @@ -31,11 +31,8 @@ rsc: $(GEN_RSC) %.capsman.rsc: %.template.rsc contrib/template-capsman.sh contrib/template-capsman.sh $< > $@ -%.local.rsc: %.template.rsc Makefile - sed -e '/\/caps-man\//d' -e '/\/interface\/wifi\//d' -e 's|%TEMPL%|.local|' \ - -e '/^# NOT \/interface\/wireless\/ #$$/,/^# NOT \/interface\/wireless\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.local.rsc: %.template.rsc contrib/template-local.sh + contrib/template-local.sh $< > $@ %.wifi.rsc: %.template.rsc Makefile sed -e '/\/caps-man\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.wifi|' \ diff --git a/contrib/template-local.sh b/contrib/template-local.sh new file mode 100755 index 0000000..bc5b327 --- /dev/null +++ b/contrib/template-local.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/caps-man\//d' \ + -e '/\/interface\/wifi\//d' \ + -e 's|%TEMPL%|.local|' \ + -e '/^# NOT \/interface\/wireless\/ #$/,/^# NOT \/interface\/wireless\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From 393cea54ca8ec8d039848c5b614d7323694e7982 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Tue, 11 Nov 2025 17:07:01 +0100 Subject: [PATCH 57/62] contrib/logo-color: place screenshots below each other... ... not side by side. --- contrib/logo-color.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 3aca324..2c4cef6 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -37,9 +37,9 @@ something that differentiates? Color it!

Then right-click, click "Take Screenshot" and finally select the logo and download it.

-

Screenshot Browser 01 -Screenshot Browser 02 -Screenshot Browser 03

+

Screenshot Browser 01

+

Screenshot Browser 02

+

Screenshot Browser 03

(This example is with Firefox. The workflow From 59c9785da1e867a6911f028847b3a40fd2cf3629 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:23:37 +0100 Subject: [PATCH 58/62] INITIAL-COMMANDS: install from rsc.eworm.de --- INITIAL-COMMANDS.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/INITIAL-COMMANDS.md b/INITIAL-COMMANDS.md index 6e70b66..787c11e 100644 --- a/INITIAL-COMMANDS.md +++ b/INITIAL-COMMANDS.md @@ -17,7 +17,7 @@ Initial commands Run the complete base installation: { - :local BaseUrl "https://git.eworm.de/cgit/routeros-scripts/plain/"; + :local BaseUrl "https://rsc.eworm.de/main/"; :local CertCommonName "ISRG Root X2"; :local CertFileName "ISRG-Root-X2.pem"; :local CertFingerprint "69729b8e15a86efc177a57afb7171dfc64add28c2fca8cf1507e34453ccb1470"; From e4dee910d665a33b477f6138e5b7a9c3ca0a33a7 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 18:22:35 +0100 Subject: [PATCH 59/62] contrib/template-wifi: split off from Makefile --- Makefile | 7 ++----- contrib/template-wifi.sh | 11 +++++++++++ 2 files changed, 13 insertions(+), 5 deletions(-) create mode 100755 contrib/template-wifi.sh diff --git a/Makefile b/Makefile index 3de629c..3d428ba 100644 --- a/Makefile +++ b/Makefile @@ -34,11 +34,8 @@ rsc: $(GEN_RSC) %.local.rsc: %.template.rsc contrib/template-local.sh contrib/template-local.sh $< > $@ -%.wifi.rsc: %.template.rsc Makefile - sed -e '/\/caps-man\//d' -e '/\/interface\/wireless\//d' -e 's|%TEMPL%|.wifi|' \ - -e '/^# NOT \/interface\/wifi\/ #$$/,/^# NOT \/interface\/wifi\/ #$$/d' \ - -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ - < $< > $@ +%.wifi.rsc: %.template.rsc contrib/template-wifi.sh + contrib/template-wifi.sh $< > $@ clean: rm -f $(HTML) checksums.json diff --git a/contrib/template-wifi.sh b/contrib/template-wifi.sh new file mode 100755 index 0000000..5e297d9 --- /dev/null +++ b/contrib/template-wifi.sh @@ -0,0 +1,11 @@ +#!/bin/sh + +set -e + +sed \ + -e '/\/caps-man\//d' \ + -e '/\/interface\/wireless\//d' \ + -e 's|%TEMPL%|.wifi|' \ + -e '/^# NOT \/interface\/wifi\/ #$/,/^# NOT \/interface\/wifi\/ #$/d' \ + -e '/^# !!/,/^# !!/c # !! Do not edit this file, it is generated from template!' \ + < "${1}" From 7e62c7d98f6b4fc79166961047c0bc4d1b44fb15 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 12:18:38 +0100 Subject: [PATCH 60/62] contrib/logo-color: drop width & height properties for images --- contrib/logo-color.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contrib/logo-color.html b/contrib/logo-color.html index 2c4cef6..5516964 100644 --- a/contrib/logo-color.html +++ b/contrib/logo-color.html @@ -37,9 +37,9 @@ something that differentiates? Color it!

Then right-click, click "Take Screenshot" and finally select the logo and download it.

-

Screenshot Browser 01

-

Screenshot Browser 02

-

Screenshot Browser 03

+

Screenshot Browser 01

+

Screenshot Browser 02

+

Screenshot Browser 03

(This example is with Firefox. The workflow From 72ffd15888b4b86cc520a0da814851d569439142 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Wed, 12 Nov 2025 00:25:18 +0100 Subject: [PATCH 61/62] doc/mod/scriptrunonce: get script from rsc.eworm.de --- doc/mod/scriptrunonce.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/mod/scriptrunonce.md b/doc/mod/scriptrunonce.md index 955d12e..1fbb697 100644 --- a/doc/mod/scriptrunonce.md +++ b/doc/mod/scriptrunonce.md @@ -48,7 +48,7 @@ Usage and invocation The function `$ScriptRunOnce` expects an URL (or name if `ScriptRunOnceBaseUrl` is given) pointing to a script as parameter. - $ScriptRunOnce https://git.eworm.de/cgit/routeros-scripts/plain/doc/mod/scriptrunonce.d/hello-world.rsc; + $ScriptRunOnce https://rsc.eworm.de/main/doc/mod/scriptrunonce.d/hello-world.rsc; ![ScriptRunOnce](scriptrunonce.d/scriptrunonce.avif) From 7b07dd86dea00b21eef8c4091b656a6b18f13593 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 13 Nov 2025 15:30:30 +0100 Subject: [PATCH 62/62] global-functions: $FetchUserAgentStr: add commit info in user agent string --- global-functions.rsc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/global-functions.rsc b/global-functions.rsc index 48aaf7f..dccb8b6 100644 --- a/global-functions.rsc +++ b/global-functions.rsc @@ -539,10 +539,16 @@ :set FetchUserAgentStr do={ :local Caller [ :tostr $1 ]; + :global CommitId; + :global CommitInfo; + + :global IfThenElse; + :local Resource [ /system/resource/get ]; - :return ("User-Agent: Mikrotik/" . $Resource->"version" . " " . \ - $Resource->"architecture-name" . " " . $Caller . "/Fetch (https://rsc.eworm.de/)"); + :return ("User-Agent: Mikrotik/" . $Resource->"version" . " " . $Resource->"architecture-name" . \ + " " . $Caller . "/Fetch (https://rsc.eworm.de/" . [ $IfThenElse ($CommitId != "unknown") \ + ("; " . $CommitInfo . "/" . [ :pick $CommitId 0 8 ]) ] . ")"); } # check for existence of file, optionally with type