aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2025-04-24doc/backup-partition: mark all external linksGravatar Christian Hesse1-1/+1
2025-04-24doc/backup-cloud: mark all external linksGravatar Christian Hesse1-1/+1
2025-04-24CONTRIBUTIONS: mark all external linksGravatar Christian Hesse1-1/+1
2025-04-24CERTIFICATES: mark all external linksGravatar Christian Hesse1-2/+2
2025-04-24BRANCHES: mark all external linksGravatar Christian Hesse1-1/+1
2025-04-24README: mark all external linksGravatar Christian Hesse1-10/+10
2025-04-17README: and another hint on RouterOS versionGravatar Christian Hesse1-0/+3
2025-04-17global-functions: $ScriptInstallUpdate: support downloading certificate...Gravatar Christian Hesse1-0/+6
... for individual scripts. Just add it in comment with "certificate=...". This also works on installtion: $ScriptInstallUpdate new-script "base-url=..., certificate=..."; Closes: https://github.com/eworm-de/routeros-scripts/pull/97
2025-04-14INITIAL-COMMANDS: fix typosGravatar Christian Hesse1-1/+1
2025-04-14INITIAL-COMMANDS: add status outputGravatar Miquel Bonastre1-0/+6
Co-authored-by: Christian Hesse <mail@eworm.de>
2025-04-14INITIAL-COMMANDS: support installation from custom serverGravatar Miquel Bonastre1-5/+9
Closes: https://github.com/eworm-de/routeros-scripts/pull/96 Co-authored-by: Christian Hesse <mail@eworm.de>
2025-04-10global-functions: $CertificateNameByCN: warn with no matchGravatar Christian Hesse1-0/+2
2025-04-08global-functions: $CertificateNameByCN: return false without match...Gravatar Christian Hesse1-0/+4
... and return true on success.
2025-04-08global-functions: $CertificateNameByCN: pick the first match onlyGravatar Christian Hesse1-1/+1
2025-04-08global-functions: $CertificateNameByCN: support matching by fingerprint and nameGravatar Christian Hesse1-2/+3
2025-04-08global-functions: $CertificateDownload: no infinite loopGravatar Christian Hesse1-2/+2
We can not call $CertificateAvailable here, as that will most likely cause an infinite loop. After all that's the certificate mkcert.org is using. And it *is* available in this repository.
2025-04-08global-functions: $ScriptLock: increase interval with wait timeGravatar Christian Hesse1-7/+12
Inspired by: https://github.com/eworm-de/routeros-scripts/issues/95#issuecomment-2773513467
2025-04-08update list of contributorsGravatar Christian Hesse1-0/+1
2025-04-08global-functions: $ScriptLock: fix second parameterGravatar Ilya Kulakov1-1/+1
This broke with 1e8918fdaa5a30393e2004d1f5e4dff458936b67... Fixes: https://github.com/eworm-de/routeros-scripts/issues/95
2025-04-02README: give the script namesGravatar Christian Hesse1-51/+51
2025-04-01logo: strip some bytes...Gravatar Christian Hesse2-0/+0
... by just re-compressing/re-encoding.
2025-04-01mod/notification-telegram: fix override quirkGravatar Christian Hesse1-1/+2
IDs for chat and thread can be overridden. Overriding the chat probably makes the thread invalid - so ignore that then.
2025-04-01check-routeros-update: split off check-perpetual-license...Gravatar Christian Hesse8-39/+152
... and also add documentation, screenshot, etc.
2025-03-27check-routeros-update: send notification on renewed license...Gravatar Christian Hesse1-0/+10
... when a warning has been sent before.
2025-03-27check-routeros-update: send certificate warning just once...Gravatar Christian Hesse1-8/+15
... and another one once expired.
2025-03-27support creating the checksums fileGravatar Christian Hesse3-2/+17
2025-03-13capsman-download-packages: fix parameter for $RmFileGravatar Christian Hesse3-3/+3
The function can not handle ids, we have to pass a name instead.
2025-03-13check-routeros-update: fix condition for license checkGravatar Christian Hesse1-1/+1
Turns out that `next-renewal-at` is moved forward when renewal failed, so it never matches the criteria. Just start complaining three weeks before deadline.
2025-03-12netwatch-notify: check matching address type onlyGravatar Christian Hesse1-8/+12
2025-03-12netwatch-notify: increase the timeout even moreGravatar Christian Hesse1-2/+2
This interacts with the number of addresses in the address-list. Having a lot of addresses there (for exemple from script 'fw-addr-lists' ๐Ÿ˜œ) makes the 'find' take longer. We have to make sure that 'find' succeeds before the address times out. As this does not hurt... Let's just bump to 10 seconds to be safe.
2025-03-12netwatch-notify: increase timeout...Gravatar Christian Hesse1-2/+2
... as a timeout of one second expires immediately. ๐Ÿคจ
2025-03-11fw-addr-lists: raw.githubusercontent.com requires 'USERTrust RSA โ†ตGravatar Christian Hesse3-2/+43
Certification Authority' now
2025-03-11check-routeros-update: check perpetual license...Gravatar Christian Hesse1-0/+21
... as these have to be renewed and can expire.
2025-03-11Merge branch 'fw-addr-lists' into nextGravatar Christian Hesse1-38/+59
2025-03-11fw-addr-lists: get branch from calculated checksumGravatar Christian Hesse1-3/+8
The addresses were spread very uneven before. Let's calculate a checksum, and take the first two characters of that. The addresses are now spread evenly on 256 branches (0x00 to 0xff).
2025-03-11fw-addr-lists: two characters for branchGravatar Christian Hesse1-3/+3
Using one character for IPv4 is ok (1 to 9), but IPv6 global unicase (2000::/3) results in just two different characters (2 and 3). So let's use first two characters...
2025-03-11fw-addr-lists: put addresses into "branches"...Gravatar Christian Hesse1-28/+37
... effectively adding another layer and some complexity, but: The addresses are sorted inside the array, and sorting less addresses in a branch saves a lot of processing power. So this is a lot faster now...
2025-03-11fw-addr-lists: strip cidr for host addressesGravatar Christian Hesse1-0/+6
This makes sure the addresses match later when we read them from address-list for renew.
2025-03-11fw-addr-lists: do not clean upGravatar Christian Hesse1-2/+0
Cleanup is important on renew (so the script does not attempt to re-add), but we do not care here.
2025-03-06fw-addr-lists: put timeout into variableGravatar Christian Hesse1-6/+8
2025-03-06DEBUG: add info on $LogPrintVerboseGravatar Christian Hesse2-0/+15
2025-03-06fw-addr-lists: use $LogPrintVerbose ...Gravatar Christian Hesse1-6/+7
... to reduce debug output and speed up execution.
2025-03-06global-functions: introduce $LogPrintVerbose ...Gravatar Christian Hesse1-0/+3
... which is a declared function, but has no code, intentionally. It can be called as a no-op by default. If you want this output set the function to be the same as $LogPrint: :set LogPrintVerbose $LogPrint;
2025-03-06Merge branch 'checksums' into nextGravatar Christian Hesse1-3/+22
2025-03-06global-functions: $ScriptInstallUpdate: checksum only for same sourceGravatar Christian Hesse1-1/+2
So ignore if script is fetched from different base or with different suffix.
2025-03-06global-functions: $ScriptInstallUpdate: simplify checkGravatar Christian Hesse1-2/+1
This one should suffice...
2025-03-06global-functions: $ScriptInstallUpdate: put checksum into variableGravatar Christian Hesse1-2/+3
2025-03-06global-functions: $ScriptInstallUpdate: support checksums for CRLF scriptsGravatar Christian Hesse1-1/+2
2025-03-06global-functions: $ScriptInstallUpdate: get and compare checksumsGravatar Christian Hesse1-0/+13
The file 'checksums.json' is generated when deploying to my web server... This should speed up the update a lot as it reduces downloads to a minimum. ๐ŸŽ‰๐Ÿ˜
2025-03-05global-functions: $ScriptInstallUpdate: move code into blockGravatar Christian Hesse1-3/+7
2025-03-03ipv6-update: check for availability of both variablesGravatar Christian Hesse1-1/+1
2025-03-03ipv6-update: ignore if prefix is no longer validGravatar Christian Hesse1-0/+8
2025-02-27Merge branch 'quote-file-name' into nextrouteros-7.18-1Gravatar Christian Hesse2-2/+2
This is required with RouterOS 7.18 now... Well, probably the change was introduced with one of the beta versions...
2025-02-27mod/notification-telegram: $GetTelegramChatId: give thead id...Gravatar Christian Hesse1-0/+3
... if message was sent to group's topic.
2025-02-27INITIAL-COMMANDS: quote the certificate file nameGravatar Christian Hesse1-1/+1
2025-02-27mod/notification-telegram: $GetTelegramChatId: use last messageGravatar Christian Hesse1-4/+7
2025-02-27README: quote the certificate file nameGravatar Christian Hesse1-1/+1
2025-02-27Merge branch 'check-certificates' into nextGravatar Christian Hesse1-10/+15
2025-02-26check-certificates: try PKCS#12 before PEM...Gravatar Christian Hesse1-1/+1
... as that is more likely to have a private key. Is that true? ๐Ÿคจ
2025-02-26check-certificates: simplify return from function...Gravatar Christian Hesse1-4/+2
... and also break earch on success.
2025-02-26check-certificates: ... and even moreGravatar Christian Hesse1-0/+3
2025-02-26check-certificates: add more debug outputGravatar Christian Hesse1-1/+3
2025-02-26check-certificates: drop dot from type...Gravatar Christian Hesse1-2/+2
... and add it in file name.
2025-02-26check-certificates: catch and ignore import errorGravatar Christian Hesse1-4/+6
Hmm... ๐Ÿคจ When was that runtime error introduced? I *think* it worked before.
2025-02-25mod/notification-telegram: introduce $GetTelegramChatIdchange-135Gravatar Christian Hesse5-9/+52
2025-02-25telegram-chat: say hello when awaiting commandsGravatar Christian Hesse1-1/+2
2025-02-25global-functions: $DeviceInfo: add license level, re-orderGravatar Christian Hesse1-6/+9
2025-02-25Merge branch 'telegram-topics' into nextGravatar Christian Hesse6-16/+30
2025-02-25notify on support for Telegram group topicschange-134Gravatar Christian Hesse2-1/+2
2025-02-25telegram-chat: support reply in group's topicGravatar Christian Hesse1-4/+9
2025-02-25telegram-chat: make $IsReply a boolean...Gravatar Christian Hesse1-2/+3
... and check for correct data type. We need this for a group with topic feature enabled, as that variable is set there, but is is an array.
2025-02-25mod/notification-telegram: support sending to group's topic...Gravatar Christian Hesse3-2/+11
... when a group has enabled the "Topics" feature.
2025-02-24mod/notification-telegram: simplify the queue...Gravatar Christian Hesse1-9/+7
... and pass http-data as a complete sting.
2025-02-19global-functions: $WaitForFile: drop the warning on file handling breakage...routeros-7.18rc1-1Gravatar Christian Hesse1-5/+1
... but keep the workaround for now - just to be sure.
2025-02-17global-functions: $ScriptInstallUpdate: also show commit infoGravatar Christian Hesse1-1/+2
2025-02-17global-functions: $DeviceInfo: also show commit infoGravatar Christian Hesse1-2/+4
2025-02-13global-functions: $RmFile: fix type safeguardGravatar Christian Hesse1-2/+2
Ups... ๐Ÿซฃ The type is not just literal 'file' - but what ever type the file is, like 'backup', 'package', 'script', '.conf file', ... So let's match those types we do *not* want to remove. Fixes: https://github.com/eworm-de/routeros-scripts/issues/90
2025-02-13global-functions: $ScriptInstallUpdate: show commit id (if available)Gravatar Christian Hesse1-0/+6
2025-02-13global-functions: $DeviceInfo: show commit id (if available)Gravatar Christian Hesse1-0/+4
2025-02-12mod/scriptrunonce: always give proper return codeGravatar Christian Hesse1-0/+3
2025-02-12mod/scriptrunonce: resolve nested conditionsGravatar Christian Hesse1-11/+10
2025-02-12mod/scriptrunonce: use $FetchHugeGravatar Christian Hesse1-5/+4
2025-02-12fw-addr-lists: add a collective list in default configurationchange-133Gravatar Christian Hesse4-2/+8
2025-02-12global-functions: $WaitForFile: check that we can get propertiesrouteros-7.18beta2-3Gravatar Christian Hesse1-1/+15
Looks like RouterOS 7.18beta2 brings more breakage. Having a file available in listing is just the first step now. We also need to make sure that the file properties are accessible... ๐Ÿคช I have seen this taking several tens of seconds at least... ๐Ÿคช๐Ÿคช So let's just try until we have properties available, or the file vanishes. Reported as SUP-179200. ๐Ÿคž
2025-02-12introduce DEBUG infoGravatar Christian Hesse1-0/+49
2025-02-11global-functions: $MkDir: add debug outputGravatar Christian Hesse1-0/+3
2025-02-11fw-addr-lists: these lists are deprecated and discontinuedGravatar Christian Hesse4-37/+3
Any alternatives around?
2025-02-10doc/log-forward: mention ntfyGravatar Christian Hesse1-3/+3
2025-02-10doc/log-forward: add a hint on defaultsGravatar Christian Hesse1-0/+6
2025-02-10mod/notification-ntfy: use empty strings as default...Gravatar Christian Hesse1-3/+3
... which should be fine now that the credentials are not passed with fetch's properties, but as properly formatted authentication header.
2025-02-10log-forward: make empty string a special meaningGravatar Christian Hesse2-5/+10
2025-02-10Merge branch 'rmdir-rmfile' into nextrouteros-7.18beta2-2Gravatar Christian Hesse9-19/+91
RouterOS 7.18beta2 comes with some severe issues in file handling, probably racy conditions. Let's move file (and directory) removal to functions, so errors can be caught and ignored ๐Ÿคช from a central place.
2025-02-10telegram-chat: use $RmDirGravatar Christian Hesse1-1/+2
2025-02-10mod/ssh-keys-import: use $RmDirGravatar Christian Hesse1-2/+3
2025-02-10check-certificates: use $RmFileGravatar Christian Hesse1-1/+2
2025-02-10capsman-download-packages: use $RmFileGravatar Christian Hesse3-3/+6
2025-02-10backup-upload: use $RmFileGravatar Christian Hesse1-3/+4
2025-02-10backup-upload: use $RmDirGravatar Christian Hesse1-1/+2
2025-02-10backup-cloud: use $RmDirGravatar Christian Hesse1-1/+2
2025-02-10global-functions: $MkDir: use $RmDirGravatar Christian Hesse1-1/+2