Christian Hesse
28971c1e88
global-functions: $NetMask6: use shift operator...
...
... and drop the workaround. This requires RouterOS 7.22beta3.
2026-01-21 08:57:18 +01:00
Christian Hesse
ad32e1af94
global-functions: $CertificateAvailable: drop the old builtin-trust-anchors
2026-01-21 08:57:18 +01:00
Christian Hesse
6835b6fd3a
global-functions: $ScriptInstallUpdate: fix indention
2026-01-21 08:57:18 +01:00
Christian Hesse
4abfec4f12
global-functions: $ScriptInstallUpdate: use :continue in loop
2026-01-21 08:57:18 +01:00
Christian Hesse
6cb3ef6053
global-functions: deprecate $ExitError
2026-01-21 08:57:18 +01:00
Christian Hesse
c628a6a5d2
global-functions: deprecate $HexToNum
2026-01-21 08:57:17 +01:00
Christian Hesse
998555932d
global-functions: $CertificateAvailable: drop the compatibility workaround...
...
... and make it depend in RouterOS 7.19 and its builtin certificates.
2026-01-21 08:57:17 +01:00
Christian Hesse
c76c9591d5
global-functions: $ScriptInstallUpdate: drop output on commit...
...
... now that we have it on loading global functions.
2026-01-21 08:57:17 +01:00
Christian Hesse
4fe77ef238
global-functions: give commit info when laoding
2026-01-21 08:57:17 +01:00
Christian Hesse
03010ad9d9
global-functions: $ScriptInstallUpdate: use $CommitBrief
2026-01-21 08:57:17 +01:00
Christian Hesse
7f888b197e
global-functions: $FetchUserAgentStr: user $CommitBrief
2026-01-21 08:57:17 +01:00
Christian Hesse
c81967f63a
global-functions: $DeviceInfo: use $CommitBrief
2026-01-21 08:57:17 +01:00
Christian Hesse
005b80b4c5
global-functions: introduce $CommitBrief
2026-01-21 08:57:17 +01:00
Christian Hesse
d0f2ae0033
global-functions: $SendNotification: use $ExitOnError
2026-01-21 08:57:17 +01:00
Christian Hesse
f3d81f7e0d
global-functions: $ScriptInstallUpdate: use $ExitOnError
2026-01-21 08:57:17 +01:00
Christian Hesse
5443034897
global-functions: make $ExitError a wrapper for $ExitOnError
2026-01-21 08:57:17 +01:00
Christian Hesse
a8e091dde7
global-functions: introduce $ExitOnError
...
This is just like $ExitError, but first parameter is dropped. We will
not need it now that we can exit a script with :exit.
2026-01-21 08:57:17 +01:00
Christian Hesse
0db4306795
global-functions: enable scheduler if disabled
2026-01-21 08:57:17 +01:00
Christian Hesse
86bf200bb5
global-functions: simplify the scheduler fix
2026-01-21 08:57:17 +01:00
Christian Hesse
ad8299824c
global-functions: make the scheduler fix a block
2026-01-21 08:57:17 +01:00
Christian Hesse
8b3fae745d
global-functions: $NetMask6: drop unused variable
2026-01-21 08:57:17 +01:00
Christian Hesse
28b1297a43
global-functions: $ScriptInstallUpdate: trigger reload on changed snippet
2026-01-20 09:51:05 +01:00
Christian Hesse
9919b9fe76
global-functions: $ScriptInstallUpdate: get new Let's Encrypt CA 'Root YE'
2026-01-17 16:58:16 +01:00
Christian Hesse
d673f0956c
global-functions: $CertificateAvailable: get missing certificate...
...
... not the issued and available one.
2026-01-16 00:32:49 +01:00
Christian Hesse
45bcb80125
global-functions: bump required version to 7.17...
...
... as we use `:convert from=num ...` which was introduced back then.
Actually the requirment did exist since commit
6ad6f9aa08 .
2026-01-12 10:00:30 +01:00
Christian Hesse
0ceedab5db
global-functions: $CharacterMultiply: return early on length zero...
...
... as :for loop counts backwards and would return two
character otherwise.
2026-01-06 14:10:08 +01:00
Christian Hesse
6990084d98
global-functions: $CharacterMultiply: use local variables for parameters
2026-01-06 14:10:08 +01:00
Christian Hesse
8878449b0b
global-functions: support modules (or snippets) in global-functions.d/
2026-01-05 11:37:58 +01:00
Christian Hesse
623f96d94a
update copyright for 2026
2026-01-01 13:50:07 +01:00
Christian Hesse
0745f09a8a
global-functions: $FetchHuge: handle missing file
...
This should not happen, as download was supposed to be
successful - it does. 🤪
2025-12-25 23:56:00 +01:00
Christian Hesse
830693df79
global-functions: $SymbolByUnicodeName: extend special
2025-12-03 17:53:31 +01:00
Christian Hesse
7caaa62321
check-perpetual-license: add scroll symbol in notification
...
doc/check-perpetual-license.d/notification-01-warn.avif
----- >8 -----
[rsc] 📜 ⚠️ License about to expire!
Your license failed to renew and is about to expire on 2025-09-13 12:12:23 on rsc...
----- >8 -----
doc/check-perpetual-license.d/notification-02-renew.avif
----- >8 -----
[rsc] 📜 ✅ ️ License renewed
Your license was successfully renewed on rsc. It is now valid until 2025-10-25 08:42:46.
----- >8 -----
2025-11-27 11:26:04 +01:00
Christian Hesse
1f11f72d18
global-functions: $SymbolByUnicodeName: add special with magic
2025-11-27 08:49:56 +01:00
Christian Hesse
b285f2c5d2
global-functions: add and fix global scheduler automatically...
...
... and also adjust README and INITIAL-COMMANDS.
2025-11-20 11:26:59 +01:00
Christian Hesse
93eb218589
global-functions: $FetchUserAgentStr: add commit info in user agent string
2025-11-20 11:26:59 +01:00
Christian Hesse
b5a0269667
global-functions: $ScriptInstallUpdate: define certificate use
2025-11-19 16:19:59 +01:00
Christian Hesse
f3e6e152bc
global-functions: $GetMacVendor: define certificate use
2025-11-19 16:19:59 +01:00
Christian Hesse
8eb397f79f
global-functions: $DownloadPackage: define certificate use
2025-11-19 16:19:59 +01:00
Christian Hesse
db0a5bf33c
global-functions: $CertificateAvailable: support new builtin-trust-store...
...
... which was introduced with RouterOS 7.21beta7.
2025-11-19 16:19:59 +01:00
Christian Hesse
d002d1c0c0
global-functions: $ScriptInstallUpdate: extra actions on 'not found' only
2025-11-19 16:19:59 +01:00
Christian Hesse
298a43a871
global-functions: $ScriptInstallUpdate: either or...
...
... but not both.
2025-11-19 16:19:59 +01:00
Christian Hesse
20885c4620
global-functions: $ScriptInstallUpdate: give hint on ignore
...
Fixes: https://github.com/eworm-de/routeros-scripts/issues/112
2025-11-19 16:19:59 +01:00
Christian Hesse
83b164d511
global-functions: $CertificateDownload: drop unused function
2025-11-19 16:19:59 +01:00
Christian Hesse
d7a6eb1d00
global-functions: $NetMask6: implement simple caching
...
The calculation is quite complex for something that needs to be done
frequently, for example by `fw-addr-lists`. The number of possible
netmasks is limited, so let's cache the results that were calculated
already.
2025-10-19 19:52:42 +02:00
Christian Hesse
6ad6f9aa08
global-functions: introduce $NetMask6
...
RouterOS does not support bit shifting on IPv6 data types, so we have to
split the problem:
* each 16 bit block is calculated separately, as number
* the complete netmask is assembled in a loop, as string
* the final string is casted to correct data type
2025-10-19 19:48:14 +02:00
Christian Hesse
def540c965
global-functions: introduce $NetMask4
2025-10-16 10:47:19 +02:00
Christian Hesse
025b492783
global-functions: remove trailing space
2025-10-16 10:34:09 +02:00
Christian Hesse
2773fef9d8
global-functions: $WaitForFile: try less expensive operation
...
Checking a specific file is less expensive operation than finding one,
especially when on hardware with huge storage and lots of files (like
RDS). We have to keep the find command in the latter loop, though.
2025-09-25 10:24:07 +02:00
Christian Hesse
fe080c0d3d
global-functions: $CertificateAvailable: properly handle duplicate CN
...
There are CA certificates with identical CommonName out there... 🤪
Let's handle these.
[admin@MikroTik] > /certificate/print proplist=common-name,skid where common-name="GlobalSign";
Flags: T - TRUSTED
Columns: COMMON-NAME, SKID
# COMMON-NAME SKID
0 T GlobalSign 8FF04B7FA82E4524AE4D50FA639A8BDEE2DD1BBC
1 T GlobalSign 3DE629489BEA07CA21444A26DE6EDED283D09F59
2 T GlobalSign AE6C05A39313E2A2E7E2D71CD6C7F07FC86753A0
3 T GlobalSign 54B07BAD45B8E2407FFB0A6EFBBE33C93CA384D5
2025-08-16 23:14:31 +02:00
Christian Hesse
a856d309df
global-functions: $SymbolByUnicodeName: allow to add more symbols...
...
... for example from a module. Add a script `mod/symbols-extra` with
something like:
:global SymbolsExtra;
:set ($SymbolsExtra->"rocket") "\F0\9F\9A\80";
2025-07-28 16:47:27 +02:00