Age | Commit message (Collapse) | Author | Files | Lines | |
---|---|---|---|---|---|
2022-04-28 | global-functions: catch runtime error when loading modules | Christian Hesse | 1 | -1/+5 | |
2022-04-28 | global-functions: validate syntax of modules | Christian Hesse | 1 | -1/+6 | |
2022-04-28 | global-functions: set $0 with script name | Christian Hesse | 1 | -2/+4 | |
Now that we have some active code at the bottom... | |||||
2022-04-26 | global-functions: $DefaultRouteIsReachable: update properties for ROS 7.xrouteros-7.x-6 | Christian Hesse | 1 | -1/+1 | |
2022-04-26 | global-functions: $ScriptInstallUpdate: support giving comment... | Christian Hesse | 1 | -2/+3 | |
... for new scripts. This allows to have extra settings from the beginning, for example: $ScriptInstallUpdate script1,script2 "base-url=https://example.com/your/custom/repository/" | |||||
2022-03-30 | introduce backup-partitionchange-79 | Christian Hesse | 1 | -1/+1 | |
2022-03-08 | global-functions: (re-)introduce global $Read | Christian Hesse | 1 | -0/+6 | |
... to interactively read input from user on terminal. | |||||
2022-03-01 | global-functions: $FlushEmailQueue: delay if "in-progress"... | Christian Hesse | 1 | -0/+1 | |
Something else is sending a mail... Let's wait and hope the status is not confused. | |||||
2022-02-24 | global-functions: $DeviceInfo: firmware only if upgrade pending | Christian Hesse | 1 | -1/+2 | |
2022-02-21 | doc/mod: notify about new documentationchange-78 | Christian Hesse | 1 | -1/+1 | |
2022-02-10 | global-functions: $DownloadPackage: handle special cases | Christian Hesse | 1 | -7/+3 | |
This is a RouterOS v7 only change! * Revert commit 1e6931c8e34d5035cb07baa98b57eccbcd4278ab (but keep the cherry-picked one in branch routeros-v6). * Drop special case 'routeros-$arch', which no longer exists. * Update package name 'system' to 'routeros'. This should be the correct name, and is expected by CAPsMAN. No idea why package-name property for the file is different... | |||||
2022-02-10 | global-functions: $MkDir: do not act without directory | Christian Hesse | 1 | -0/+4 | |
2022-02-10 | introduce firmware-upgrade-rebootchange-77 | Christian Hesse | 1 | -1/+1 | |
2022-02-10 | netwatch-notify: allow to suppress notification on host downchange-76 | Christian Hesse | 1 | -1/+1 | |
2022-01-20 | global-functions: $ScriptInstallUpdate: quote names in log output | Christian Hesse | 1 | -9/+9 | |
2022-01-20 | global-functions: $ScriptInstallUpdate: give final url in debug output | Christian Hesse | 1 | -7/+6 | |
2022-01-17 | global-functions: $DownloadPackage: handle special case with name | Christian Hesse | 1 | -0/+4 | |
For RouterOS 6.x bundled package version and architecture are swapped. Closes: #21 | |||||
2022-01-17 | global-functions: $DownloadPackage: give url in debug output | Christian Hesse | 1 | -3/+3 | |
2022-01-14 | global: notify about merging 'routeros-v7' into 'main'change-75 | Christian Hesse | 1 | -1/+1 | |
2022-01-14 | global-functions: bump the required version for RouterOS 7.x | Christian Hesse | 1 | -5/+4 | |
... but keep a warning when running RouterOS v6. | |||||
2022-01-07 | hotspot-to-wpa: support settings from templatechange-74 | Christian Hesse | 1 | -1/+1 | |
2022-01-06 | Migrate configuration and send notification on renameschange-73 | Christian Hesse | 1 | -1/+1 | |
2022-01-03 | introduce netwatch-dnschange-72 | Christian Hesse | 1 | -1/+1 | |
2022-01-01 | update copyright for 2022 | Christian Hesse | 1 | -1/+1 | |
2021-12-20 | global-functions: $RequiredRouterOS: fix warning | Christian Hesse | 1 | -5/+4 | |
Passing a boolean does not work... Handle as string. | |||||
2021-12-14 | global-functions: $DownloadPackage: make directory first | Christian Hesse | 1 | -0/+6 | |
The fetch command creates the directory itself, however using $MkDir gives better error message when creating directory fails. | |||||
2021-12-14 | global-functions: $MkDir: log error | Christian Hesse | 1 | -1/+3 | |
2021-12-14 | global-functions: $NotificationFunctions->"email": do not declare unused ↵ | Christian Hesse | 1 | -1/+0 | |
function | |||||
2021-12-13 | global-functions: $DeviceInfo: show license level if available | Christian Hesse | 1 | -0/+3 | |
This now shows license level for CHR. The property is named different for Routerboards. As these have the license bundled to hardware anyway we do not show it there. | |||||
2021-12-13 | README: changes for RouterOS v6change-71 | Christian Hesse | 1 | -1/+1 | |
2021-12-10 | global-functions: $ScriptLock: simplify cleanup code | Christian Hesse | 1 | -5/+2 | |
2021-12-09 | global-functions: $ScriptLock: remove ticket in a loop | Christian Hesse | 1 | -1/+2 | |
This was not required with RouterOS v6, but for any reason removing a ticket may fail with RouterOS v7 in very rare cases. So remove in a loop... | |||||
2021-12-09 | global-functions: $ScriptLock: cleanup in dedicated function | Christian Hesse | 1 | -4/+13 | |
2021-12-09 | global-functions: $ScriptLock: initialize earlier | Christian Hesse | 1 | -4/+3 | |
2021-12-09 | global-functions: $ScriptLock: initialize empty array on cleanup | Christian Hesse | 1 | -2/+2 | |
2021-12-07 | global-functions: give a hint on RouterOS v7 | Christian Hesse | 1 | -0/+6 | |
2021-12-07 | global-config: load overlay automatically | Christian Hesse | 1 | -4/+4 | |
2021-12-07 | README: changes for RouterOS v7change-70 | Christian Hesse | 1 | -1/+1 | |
2021-11-22 | global-functions: $DeviceInfo: add current firmware | Christian Hesse | 1 | -0/+2 | |
(I would like to show a note if the upgrade is pending... But did not find a way to get that information. Is there?) | |||||
2021-11-16 | check-health: support hard lower limit for voltagechange-69 | Christian Hesse | 1 | -1/+1 | |
... to detect slow decrease of voltage, for example with UPS. | |||||
2021-11-16 | check-health: indicate voltage increase or decrease | Christian Hesse | 1 | -0/+2 | |
2021-11-16 | reintroduce global-waitchange-68 | Christian Hesse | 1 | -1/+1 | |
2021-11-16 | global-functions: drop deprecated function $LogPrintExit | Christian Hesse | 1 | -9/+0 | |
... which has been replaced by $LogPrintExit2 some time ago. | |||||
2021-11-15 | shorten modules directory name (global-functions.d -> mod)change-67 | Christian Hesse | 1 | -3/+3 | |
2021-11-15 | bridge-port-to-default -> global-functions.d/bridge-port-tochange-66 | Christian Hesse | 1 | -1/+1 | |
2021-11-12 | add global-functions.d/bridge-port-vlanchange-65 | Christian Hesse | 1 | -1/+1 | |
2021-10-01 | global-functions: $NotificationFunctions->"email": check for valid settings | Christian Hesse | 1 | -1/+2 | |
No need to queue mails if 'address' and 'from' are not specified... | |||||
2021-10-01 | global-functions: $DeviceInfo: do not fail on non-RouterBoard with ROS 7.x | Christian Hesse | 1 | -1/+4 | |
2021-09-21 | global-functions.d/inspectvar: add $InspectVar...change-64 | Christian Hesse | 1 | -1/+1 | |
to inspect variables. This is useful for variables with (nested) arrays, for example inspecting $NetwatchNotify (from netwatch-notify): [admin@Mikrotik] > $InspectVar $NetwatchNotify -type-> array -key-> quad-one -type-> array -key-> count -type-> num -value-> 0 -key-> notified -type-> bool -value-> false -key-> parent -type-> nothing -key-> resolve-failed -type-> nothing -key-> since -type-> nothing -key-> example.com -type-> array -key-> count -type-> num -value-> 0 -key-> notified -type-> bool -value-> false -key-> parent -type-> str -value-> quad-one -key-> resolve-failed -type-> nothing -key-> since -type-> nothing | |||||
2021-09-21 | global-functions: notify about move of $IPCalc and $ScriptRunOnce to moduleschange-63 | Christian Hesse | 1 | -1/+1 | |
Just install with... $ScriptInstallUpdate global-functions.d/ipcalc ... and/or... $ScriptInstallUpdate global-functions.d/scriptrunonce ... and use the functions as before. | |||||
2021-09-21 | global-functions: move $ScriptRunOnce to optional module | Christian Hesse | 1 | -41/+0 | |
2021-09-21 | global-functions: move $IPCalc to optional module | Christian Hesse | 1 | -30/+0 | |
2021-09-08 | global-functions*: syntax for ROS 7.xrouteros-7.1rc3 | Christian Hesse | 1 | -6/+6 | |
Strings with escape sequence have to be enclosed in parentheses. Looks like RouterOS 7.x is stricter here... | |||||
2021-09-02 | global-functions: $CertificateAvailable: drop version check | Christian Hesse | 1 | -5/+0 | |
2021-09-01 | global-functions: $RequiredRouterOS: allow to use without warning | Christian Hesse | 1 | -6/+9 | |
2021-08-31 | global-functions: $ScriptLock: handle array by index | Christian Hesse | 1 | -17/+50 | |
This should mitigate race conditions while rewriting the array. | |||||
2021-08-31 | global-functions: $ScriptLock: do not store but calculate job count | Christian Hesse | 1 | -7/+10 | |
This should mitigate some more race conditions. | |||||
2021-07-25 | global-functions: $ScriptLock: check for successful removal of ticket | Christian Hesse | 1 | -5/+9 | |
The script is already locked, so there is no second script to remove a ticket at the same time. However a new script can add a new ticket and overwrite the removal... Thus check for successful removal anyway. | |||||
2021-07-15 | global-functions: $ScriptLock: fix off-by-one check... | Ben Harris | 1 | -1/+1 | |
... for stale job tickets Signed-off-by: Christian Hesse <mail@eworm.de> | |||||
2021-07-10 | global-functions: introduce $ScriptRunOncechange-62 | Christian Hesse | 1 | -1/+42 | |
2021-07-09 | global-functions: $ScriptInstallUpdate: add error handling for changelog | Christian Hesse | 1 | -1/+5 | |
2021-07-09 | finally remove old scriptschange-61 | Christian Hesse | 1 | -1/+1 | |
2021-07-09 | global-functions: $ScriptInstallUpdate: add error handling for migration | Christian Hesse | 1 | -1/+5 | |
2021-07-09 | global-functions: $ScriptInstallUpdate: drop unused variable | Christian Hesse | 1 | -1/+0 | |
This was a left-over from re-run message. | |||||
2021-07-09 | global-functions: $ScriptInstallUpdate: drop the migration pattern | Christian Hesse | 1 | -1/+1 | |
2021-07-09 | netwatch-notify: implement pre-down hookchange-60 | Christian Hesse | 1 | -1/+1 | |
2021-07-09 | global-functions: $ScriptLock: drop variable, just return | Christian Hesse | 1 | -3/+2 | |
2021-07-08 | global-functions: $ScriptLock: make ticket management more reliable | Christian Hesse | 1 | -10/+27 | |
2021-07-01 | check-routeros-update: allow update for capchange-59 | Michael Gisbers | 1 | -1/+1 | |
If CAPsMAN is running on a device with just 16MB flash downloading the packages is not possible (or at least lost at reboot). So allow a CAP to update with opt-in. | |||||
2021-07-01 | global-functions: $ScriptLock: use hex string for ticket | Christian Hesse | 1 | -2/+2 | |
Does not matter what the ticket looks like, but using hex string it is not converted to number. | |||||
2021-07-01 | global-functions: $ScriptLock: use a limit on lock... | Christian Hesse | 1 | -4/+6 | |
... to make sure it does not lock forever. | |||||
2021-06-30 | global-functions: $ScriptLock: allow to wait for lock | Christian Hesse | 1 | -0/+6 | |
2021-06-30 | global-functions: $ScriptLock: rework with tickets | Christian Hesse | 1 | -6/+40 | |
Getting the order right is not easy... We use a global variable to store "tickets" in an array. Based on that scripts know their order. | |||||
2021-06-30 | global-functions: $ScriptLock: check if script is running | Christian Hesse | 1 | -0/+4 | |
2021-06-30 | global-functions: $ScriptLock: check if script exists | Christian Hesse | 1 | -0/+4 | |
2021-06-30 | global-functions: $ScriptLock: allow to return... | Christian Hesse | 1 | -3/+8 | |
... with true instead of breaking with error. | |||||
2021-06-30 | global-functions: $LogPrintExit2: allow origin-specific debug | Christian Hesse | 1 | -1/+6 | |
Add something like this in global-config-overlay: :global PrintDebugOverride { "dhcp-to-dns"=true; } | |||||
2021-06-28 | global-functions: $GetRandomNumber: use $HexToNum | Christian Hesse | 1 | -11/+2 | |
2021-06-28 | global-functions: $GetRandom20CharHex: do not remove otp... | Christian Hesse | 1 | -3/+1 | |
... as it is instantly invalid anyway. | |||||
2021-06-24 | global-functions: $RandomDelay: allow to specify unit in second argument | Christian Hesse | 1 | -1/+2 | |
2021-06-23 | hotspot-to-wpa: add optional cleanup scriptchange-58 | Christian Hesse | 1 | -1/+1 | |
2021-06-23 | celebrating the 1.000th commit - hooray!change-57 | Christian Hesse | 1 | -1/+1 | |
2021-06-23 | notify about tag in scriptschange-56 | Christian Hesse | 1 | -1/+1 | |
2021-06-21 | global-functions: $MkDir: abuse smb share to create directory | Christian Hesse | 1 | -7/+5 | |
The smb feature is provided by system package... So we have it anyway. It gives some benefits compared to abusing fetch: * It is faster! * No need to alter, enable and restore a service! (The share is created disabled.) * Firewall rules can not break this. * No temporary file is created. * Less code! Let's hope we do not introduce new breakage. Closes #14 | |||||
2021-06-17 | global-functions: $NotificationFunctions->"email": support removing attachment | Christian Hesse | 1 | -2/+8 | |
2021-06-16 | global-functions: $HexToNum: properly handle capital characters | Christian Hesse | 1 | -2/+2 | |
2021-06-15 | global-functions: introduce $HexToNum | Christian Hesse | 1 | -0/+16 | |
2021-06-10 | global-functions: $SendEMail2: fix name in array | Christian Hesse | 1 | -1/+1 | |
This did not send anything at all... Fixes #12 | |||||
2021-06-09 | log-forward: implement reverse logic to include messages...change-55 | Christian Hesse | 1 | -1/+1 | |
... even if a filter matches to exclude them. Let's have an example: :global LogForwardFilter "(debug|info)"; :global LogForwardInclude "account"; This will forward everything about topic *account* (login, logout, failed login, ...) - even with topic *info*. | |||||
2021-06-08 | global-functions: make Telegram notifications a modulechange-54 | Christian Hesse | 1 | -157/+1 | |
2021-06-08 | global-functions: implement notifications via Matrixchange-53 | Michael Gisbers | 1 | -1/+1 | |
Matrix is an open network for secure, decentralized communication - and it has a web api. A warning on message type: Using 'm.notice' breaks rendering on Element for Android (no fixed width font) and does not pop up desktop notification. Thus we use 'm.text'. Should be safe as we do not send the messages in response to other messages. https://matrix.org/ | |||||
2021-06-08 | global-functions: make notification functions extensible | Christian Hesse | 1 | -133/+159 | |
This allows to add notification functions without overloading functions. Just add it into the array: :set ($NotificationFunctions->"fancy-messager") do={ # notification magic here... } Adding functions $SendFancyMessager and/or $SendFancyMessager2 may be useful. Optionally a function to flush a queue may be required. A BIG FAT WARNING about function parameters: Calling a function from array results in $0 for the function name being skipped. That's why we have to add the function name manually! | |||||
2021-06-08 | global-functions: $ScriptInstallUpdate: drop the re-run message | Christian Hesse | 1 | -5/+0 | |
This makes sense just rarely... For important changes we have the migration mechanism. So just drop this. | |||||
2021-06-08 | global-functions: $ScriptInstallUpdate: reload configuration later | Christian Hesse | 1 | -7/+12 | |
2021-06-08 | global-functions: $ScriptInstallUpdate: reload functions just once | Christian Hesse | 1 | -6/+11 | |
2021-06-08 | global-functions: support loading modules | Christian Hesse | 1 | -1/+6 | |
If script's name starts with "global-functions.d/" it is handled as module: * loaded at startup * triggers reload on update | |||||
2021-05-19 | global-functions: $DownloadPackage: quote package name | Christian Hesse | 1 | -2/+2 | |
2021-05-18 | update Let's Encrypt trust chainchange-52 | Christian Hesse | 1 | -1/+1 | |
Drop 'DST Root CA X3', use 'ISRG Root X1' instead. The migration code makes sure that... * the intermediate certificate 'R3' is signed by 'ISRG Root X1' * 'ISRG Root X1' is self-signed, not cross-signed by 'DST Root CA X3' * 'DST Root CA X3' is finally gone | |||||
2021-05-17 | add 'ipsec-to-dns'change-51 | Christian Hesse | 1 | -1/+1 | |
2021-05-06 | netwatch-notify: support dynamic address updatechange-50 | Christian Hesse | 1 | -1/+1 | |