aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CONTRIBUTIONS.md1
-rw-r--r--README.md6
-rw-r--r--accesslist-duplicates.capsman.rsc4
-rw-r--r--accesslist-duplicates.local.rsc4
-rw-r--r--accesslist-duplicates.template.rsc4
-rw-r--r--accesslist-duplicates.wifi.rsc4
-rw-r--r--backup-cloud.rsc4
-rw-r--r--backup-email.rsc4
-rw-r--r--backup-partition.rsc5
-rw-r--r--backup-upload.rsc5
-rw-r--r--capsman-download-packages.capsman.rsc4
-rw-r--r--capsman-download-packages.template.rsc4
-rw-r--r--capsman-download-packages.wifi.rsc4
-rw-r--r--capsman-rolling-upgrade.capsman.rsc4
-rw-r--r--capsman-rolling-upgrade.template.rsc4
-rw-r--r--capsman-rolling-upgrade.wifi.rsc4
-rw-r--r--certificate-renew-issued.rsc4
-rw-r--r--certs/Makefile56
-rw-r--r--check-certificates.rsc5
-rw-r--r--check-health.rsc4
-rw-r--r--check-lte-firmware-upgrade.rsc4
-rw-r--r--check-routeros-update.rsc5
-rw-r--r--collect-wireless-mac.capsman.rsc4
-rw-r--r--collect-wireless-mac.local.rsc4
-rw-r--r--collect-wireless-mac.template.rsc4
-rw-r--r--collect-wireless-mac.wifi.rsc4
-rw-r--r--daily-psk.capsman.rsc4
-rw-r--r--daily-psk.local.rsc4
-rw-r--r--daily-psk.template.rsc4
-rw-r--r--daily-psk.wifi.rsc4
-rw-r--r--dhcp-lease-comment.capsman.rsc4
-rw-r--r--dhcp-lease-comment.local.rsc4
-rw-r--r--dhcp-lease-comment.template.rsc4
-rw-r--r--dhcp-lease-comment.wifi.rsc4
-rw-r--r--dhcp-to-dns.rsc4
-rw-r--r--firmware-upgrade-reboot.rsc4
-rw-r--r--fw-addr-lists.rsc4
-rw-r--r--global-config-overlay.rsc6
-rw-r--r--global-config.rsc12
-rw-r--r--global-functions.rsc111
-rw-r--r--global-wait.rsc4
-rw-r--r--gps-track.rsc5
-rw-r--r--hotspot-to-wpa-cleanup.capsman.rsc5
-rw-r--r--hotspot-to-wpa-cleanup.template.rsc5
-rw-r--r--hotspot-to-wpa-cleanup.wifi.rsc5
-rw-r--r--hotspot-to-wpa.capsman.rsc5
-rw-r--r--hotspot-to-wpa.template.rsc5
-rw-r--r--hotspot-to-wpa.wifi.rsc5
-rw-r--r--ip-addr-bridge.rsc4
-rw-r--r--ipsec-to-dns.rsc5
-rw-r--r--ipv6-update.rsc4
-rw-r--r--lease-script.rsc4
-rw-r--r--leds-day-mode.rsc4
-rw-r--r--leds-night-mode.rsc4
-rw-r--r--leds-toggle-mode.rsc4
-rw-r--r--log-forward.rsc4
-rw-r--r--mod/bridge-port-to.rsc4
-rw-r--r--mod/bridge-port-vlan.rsc4
-rw-r--r--mod/inspectvar.rsc4
-rw-r--r--mod/ipcalc.rsc4
-rw-r--r--mod/notification-email.rsc5
-rw-r--r--mod/notification-matrix.rsc5
-rw-r--r--mod/notification-ntfy.rsc5
-rw-r--r--mod/notification-telegram.rsc5
-rw-r--r--mod/scriptrunonce.rsc5
-rw-r--r--mod/ssh-keys-import.rsc4
-rw-r--r--mode-button.rsc5
-rw-r--r--netwatch-dns.rsc5
-rw-r--r--netwatch-notify.rsc4
-rw-r--r--news-and-changes.rsc2
-rw-r--r--ospf-to-leds.rsc4
-rw-r--r--packages-update.rsc5
-rw-r--r--ppp-on-up.rsc4
-rw-r--r--sms-action.rsc4
-rw-r--r--sms-forward.rsc4
-rw-r--r--super-mario-theme.rsc4
-rw-r--r--telegram-chat.rsc5
-rw-r--r--unattended-lte-firmware-upgrade.rsc7
-rw-r--r--update-gre-address.rsc4
-rw-r--r--update-tunnelbroker.rsc5
80 files changed, 299 insertions, 212 deletions
diff --git a/CONTRIBUTIONS.md b/CONTRIBUTIONS.md
index ed1d6fa..ef1bd8b 100644
--- a/CONTRIBUTIONS.md
+++ b/CONTRIBUTIONS.md
@@ -22,6 +22,7 @@ for details!
* [Daniel Ziegenberg](mailto:daniel@ziegenberg.at) (@ziegenberg)
* [Ignacio Serrano](mailto:ignic@ignic.com) (@ignic)
* [Michael Gisbers](mailto:michael@gisbers.de) (@mgisbers)
+* [Miquel Bonastre](mailto:mbonastre@yahoo.com) (@mbonastre)
* @netravnen
* [netztrip](mailto:dave-tvg@netztrip.de) (@netztrip)
* [Stefan Müller](mailto:stefan.mueller.83@gmail.com) (@PackElend)
diff --git a/README.md b/README.md
index 98209bd..8594f58 100644
--- a/README.md
+++ b/README.md
@@ -34,6 +34,12 @@ Specific scripts may require even newer RouterOS version.
> ℹ️ **Info**: The `main` branch is now RouterOS v7 only. If you are still
> running RouterOS v6 switch to `routeros-v6` branch!
+Starting with RouterOS 7.17 the
+[device-mode](https://help.mikrotik.com/docs/spaces/ROS/pages/93749258/Device-mode)
+has been extended to give more fine-grained control over what features are
+available. You need to enable `scheduler` and `fetch` at least, specific
+scripts may require additional features.
+
### Hardware
RouterOS packages increase in size with each release. This becomes a
diff --git a/accesslist-duplicates.capsman.rsc b/accesslist-duplicates.capsman.rsc
index b611917..0c4eaaf 100644
--- a/accesslist-duplicates.capsman.rsc
+++ b/accesslist-duplicates.capsman.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: accesslist-duplicates.capsman
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# print duplicate antries in wireless access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
+# https://rsc.eworm.de/doc/accesslist-duplicates.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/accesslist-duplicates.local.rsc b/accesslist-duplicates.local.rsc
index ef0cf32..353fe1f 100644
--- a/accesslist-duplicates.local.rsc
+++ b/accesslist-duplicates.local.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: accesslist-duplicates.local
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# print duplicate antries in wireless access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
+# https://rsc.eworm.de/doc/accesslist-duplicates.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/accesslist-duplicates.template.rsc b/accesslist-duplicates.template.rsc
index ab5b671..4219014 100644
--- a/accesslist-duplicates.template.rsc
+++ b/accesslist-duplicates.template.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: accesslist-duplicates%TEMPL%
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# print duplicate antries in wireless access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
+# https://rsc.eworm.de/doc/accesslist-duplicates.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/accesslist-duplicates.wifi.rsc b/accesslist-duplicates.wifi.rsc
index 0205598..3ee53d8 100644
--- a/accesslist-duplicates.wifi.rsc
+++ b/accesslist-duplicates.wifi.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: accesslist-duplicates.wifi
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# print duplicate antries in wireless access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/accesslist-duplicates.md
+# https://rsc.eworm.de/doc/accesslist-duplicates.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/backup-cloud.rsc b/backup-cloud.rsc
index f32a04d..efae055 100644
--- a/backup-cloud.rsc
+++ b/backup-cloud.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: backup-cloud
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: backup-script, order=40
# requires RouterOS, version=7.14
#
# upload backup to MikroTik cloud
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/backup-cloud.md
+# https://rsc.eworm.de/doc/backup-cloud.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/backup-email.rsc b/backup-email.rsc
index 731fb95..f6ebad0 100644
--- a/backup-email.rsc
+++ b/backup-email.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: backup-email
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: backup-script, order=20
# requires RouterOS, version=7.14
#
# create and email backup and config file
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/backup-email.md
+# https://rsc.eworm.de/doc/backup-email.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/backup-partition.rsc b/backup-partition.rsc
index 2298225..bfa7765 100644
--- a/backup-partition.rsc
+++ b/backup-partition.rsc
@@ -1,13 +1,14 @@
#!rsc by RouterOS
# RouterOS script: backup-partition
# Copyright (c) 2022-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: backup-script, order=70
# requires RouterOS, version=7.14
+# requires device-mode, scheduler
#
# save configuration to fallback partition
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/backup-partition.md
+# https://rsc.eworm.de/doc/backup-partition.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/backup-upload.rsc b/backup-upload.rsc
index e035415..dc5120f 100644
--- a/backup-upload.rsc
+++ b/backup-upload.rsc
@@ -1,13 +1,14 @@
#!rsc by RouterOS
# RouterOS script: backup-upload
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: backup-script, order=50
# requires RouterOS, version=7.14
+# requires device-mode, fetch
#
# create and upload backup and config file
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/backup-upload.md
+# https://rsc.eworm.de/doc/backup-upload.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/capsman-download-packages.capsman.rsc b/capsman-download-packages.capsman.rsc
index 4609498..fa76ff5 100644
--- a/capsman-download-packages.capsman.rsc
+++ b/capsman-download-packages.capsman.rsc
@@ -2,12 +2,12 @@
# RouterOS script: capsman-download-packages.capsman
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# download and cleanup packages for CAP installation from CAPsMAN
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-download-packages.md
+# https://rsc.eworm.de/doc/capsman-download-packages.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/capsman-download-packages.template.rsc b/capsman-download-packages.template.rsc
index 642a068..912e279 100644
--- a/capsman-download-packages.template.rsc
+++ b/capsman-download-packages.template.rsc
@@ -2,12 +2,12 @@
# RouterOS script: capsman-download-packages%TEMPL%
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# download and cleanup packages for CAP installation from CAPsMAN
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-download-packages.md
+# https://rsc.eworm.de/doc/capsman-download-packages.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/capsman-download-packages.wifi.rsc b/capsman-download-packages.wifi.rsc
index 1ea9b79..3a5e7d1 100644
--- a/capsman-download-packages.wifi.rsc
+++ b/capsman-download-packages.wifi.rsc
@@ -2,12 +2,12 @@
# RouterOS script: capsman-download-packages.wifi
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# download and cleanup packages for CAP installation from CAPsMAN
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-download-packages.md
+# https://rsc.eworm.de/doc/capsman-download-packages.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/capsman-rolling-upgrade.capsman.rsc b/capsman-rolling-upgrade.capsman.rsc
index 7a5ed81..abe066e 100644
--- a/capsman-rolling-upgrade.capsman.rsc
+++ b/capsman-rolling-upgrade.capsman.rsc
@@ -2,13 +2,13 @@
# RouterOS script: capsman-rolling-upgrade.capsman
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: capsman-rolling-upgrade.capsman
# requires RouterOS, version=7.14
#
# upgrade CAPs one after another
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-rolling-upgrade.md
+# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/capsman-rolling-upgrade.template.rsc b/capsman-rolling-upgrade.template.rsc
index fd7e31f..c1c7ff1 100644
--- a/capsman-rolling-upgrade.template.rsc
+++ b/capsman-rolling-upgrade.template.rsc
@@ -2,13 +2,13 @@
# RouterOS script: capsman-rolling-upgrade%TEMPL%
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: capsman-rolling-upgrade%TEMPL%
# requires RouterOS, version=7.14
#
# upgrade CAPs one after another
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-rolling-upgrade.md
+# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/capsman-rolling-upgrade.wifi.rsc b/capsman-rolling-upgrade.wifi.rsc
index 3fb99b8..44c99db 100644
--- a/capsman-rolling-upgrade.wifi.rsc
+++ b/capsman-rolling-upgrade.wifi.rsc
@@ -2,13 +2,13 @@
# RouterOS script: capsman-rolling-upgrade.wifi
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: capsman-rolling-upgrade.wifi
# requires RouterOS, version=7.14
#
# upgrade CAPs one after another
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/capsman-rolling-upgrade.md
+# https://rsc.eworm.de/doc/capsman-rolling-upgrade.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/certificate-renew-issued.rsc b/certificate-renew-issued.rsc
index 32c3267..5a4043d 100644
--- a/certificate-renew-issued.rsc
+++ b/certificate-renew-issued.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: certificate-renew-issued
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# renew locally issued certificates
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/certificate-renew-issued.md
+# https://rsc.eworm.de/doc/certificate-renew-issued.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/certs/Makefile b/certs/Makefile
index 870cb54..5dfb0d1 100644
--- a/certs/Makefile
+++ b/certs/Makefile
@@ -1,32 +1,60 @@
# Makefile to check certificates
-DOMAINS = \
- 1.1.1.1/DigiCert-Global-Root-G2 \
- 8.8.8.8/GTS-Root-R1 \
- 9.9.9.9/DigiCert-Global-Root-G3 \
+CURL = curl \
+ --capath /dev/null \
+ --connect-timeout 5 \
+ --output /dev/null \
+ --silent
+
+DOMAINS_DUAL = \
api.macvendors.com/GTS-Root-R4 \
- api.mullvad.net/ISRG-Root-X1 \
api.telegram.org/Go-Daddy-Root-Certificate-Authority-G2 \
cloudflare-dns.com/DigiCert-Global-Root-G2 \
dns.google/GTS-Root-R1 \
dns.quad9.net/DigiCert-Global-Root-G3 \
- feodotracker.abuse.ch/GlobalSign \
git.eworm.de/ISRG-Root-X2 \
- ipv4.showipv6.de/ISRG-Root-X1 \
- ipv4.tunnelbroker.net/Starfield-Root-Certificate-Authority-G2 \
- ipv6.showipv6.de/ISRG-Root-X1 \
lists.blocklist.de/Certum-Trusted-Network-CA \
matrix.org/GTS-Root-R4 \
+ raw.githubusercontent.com/DigiCert-Global-Root-G2 \
+ rsc.eworm.de/ISRG-Root-X2 \
+ upgrade.mikrotik.com/ISRG-Root-X1
+DOMAINS_IPV4 = \
+ 1.1.1.1/DigiCert-Global-Root-G2 \
+ 8.8.8.8/GTS-Root-R1 \
+ 9.9.9.9/DigiCert-Global-Root-G3 \
+ api.mullvad.net/ISRG-Root-X1 \
+ feodotracker.abuse.ch/GlobalSign \
+ ipv4.showipv6.de/ISRG-Root-X1 \
+ ipv4.tunnelbroker.net/Starfield-Root-Certificate-Authority-G2 \
mkcert.org/ISRG-Root-X1 \
ntfy.sh/ISRG-Root-X1 \
sslbl.abuse.ch/GlobalSign \
- upgrade.mikrotik.com/ISRG-Root-X1 \
www.dshield.org/ISRG-Root-X1 \
www.spamhaus.org/GTS-Root-R4
+DOMAINS_IPV6 = \
+ [2606\:4700\:4700\:\:1111]/DigiCert-Global-Root-G2 \
+ [2001\:4860\:4860\:\:8888]/GTS-Root-R1 \
+ [2620\:fe\:\:9]/DigiCert-Global-Root-G3 \
+ ipv6.showipv6.de/ISRG-Root-X1
+
+.PHONY: $(DOMAINS_DUAL) $(DOMAINS_IPV4) $(DOMAINS_IPV6)
+
+all: $(DOMAINS_DUAL) $(DOMAINS_IPV4) $(DOMAINS_IPV6)
-.PHONY: $(DOMAINS)
+$(DOMAINS_DUAL):
+ifndef NOIPV4
+ $(CURL) -4 --cacert $(notdir $@).pem https://$(dir $@)
+endif
+ifndef NOIPV6
+ $(CURL) -6 --cacert $(notdir $@).pem https://$(dir $@)
+endif
-all: $(DOMAINS)
+$(DOMAINS_IPV4):
+ifndef NOIPV4
+ $(CURL) -4 --cacert $(notdir $@).pem https://$(dir $@)
+endif
-$(DOMAINS):
- curl --output /dev/null --silent --connect-timeout 5 --cacert $(notdir $@).pem https://$(dir $@)
+$(DOMAINS_IPV6):
+ifndef NOIPV6
+ $(CURL) -6 --cacert $(notdir $@).pem https://$(dir $@)
+endif
diff --git a/check-certificates.rsc b/check-certificates.rsc
index 226364b..4271e00 100644
--- a/check-certificates.rsc
+++ b/check-certificates.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: check-certificates
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch
#
# check for certificate validity
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-certificates.md
+# https://rsc.eworm.de/doc/check-certificates.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/check-health.rsc b/check-health.rsc
index d3586db..31bd6c2 100644
--- a/check-health.rsc
+++ b/check-health.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: check-health
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# check for RouterOS health state
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-health.md
+# https://rsc.eworm.de/doc/check-health.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/check-lte-firmware-upgrade.rsc b/check-lte-firmware-upgrade.rsc
index cd9f979..562b8fe 100644
--- a/check-lte-firmware-upgrade.rsc
+++ b/check-lte-firmware-upgrade.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: check-lte-firmware-upgrade
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# check for LTE firmware upgrade, send notification
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-lte-firmware-upgrade.md
+# https://rsc.eworm.de/doc/check-lte-firmware-upgrade.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/check-routeros-update.rsc b/check-routeros-update.rsc
index 19abebf..5c9b392 100644
--- a/check-routeros-update.rsc
+++ b/check-routeros-update.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: check-routeros-update
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch, scheduler
#
# check for RouterOS update, send notification and/or install
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/check-routeros-update.md
+# https://rsc.eworm.de/doc/check-routeros-update.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/collect-wireless-mac.capsman.rsc b/collect-wireless-mac.capsman.rsc
index 05e4b89..f718e0b 100644
--- a/collect-wireless-mac.capsman.rsc
+++ b/collect-wireless-mac.capsman.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: collect-wireless-mac.capsman
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=40
# requires RouterOS, version=7.14
#
# collect wireless mac adresses in access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
+# https://rsc.eworm.de/doc/collect-wireless-mac.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/collect-wireless-mac.local.rsc b/collect-wireless-mac.local.rsc
index 67c1a98..0017875 100644
--- a/collect-wireless-mac.local.rsc
+++ b/collect-wireless-mac.local.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: collect-wireless-mac.local
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=40
# requires RouterOS, version=7.14
#
# collect wireless mac adresses in access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
+# https://rsc.eworm.de/doc/collect-wireless-mac.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/collect-wireless-mac.template.rsc b/collect-wireless-mac.template.rsc
index 84a9667..527e985 100644
--- a/collect-wireless-mac.template.rsc
+++ b/collect-wireless-mac.template.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: collect-wireless-mac%TEMPL%
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=40
# requires RouterOS, version=7.14
#
# collect wireless mac adresses in access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
+# https://rsc.eworm.de/doc/collect-wireless-mac.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/collect-wireless-mac.wifi.rsc b/collect-wireless-mac.wifi.rsc
index fa4953b..5f9de7d 100644
--- a/collect-wireless-mac.wifi.rsc
+++ b/collect-wireless-mac.wifi.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: collect-wireless-mac.wifi
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=40
# requires RouterOS, version=7.14
#
# collect wireless mac adresses in access list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/collect-wireless-mac.md
+# https://rsc.eworm.de/doc/collect-wireless-mac.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/daily-psk.capsman.rsc b/daily-psk.capsman.rsc
index f41da29..5672931 100644
--- a/daily-psk.capsman.rsc
+++ b/daily-psk.capsman.rsc
@@ -2,12 +2,12 @@
# RouterOS script: daily-psk.capsman
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
#
# update daily PSK (pre shared key)
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
+# https://rsc.eworm.de/doc/daily-psk.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/daily-psk.local.rsc b/daily-psk.local.rsc
index 2920cb5..9dea469 100644
--- a/daily-psk.local.rsc
+++ b/daily-psk.local.rsc
@@ -2,12 +2,12 @@
# RouterOS script: daily-psk.local
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
#
# update daily PSK (pre shared key)
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
+# https://rsc.eworm.de/doc/daily-psk.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/daily-psk.template.rsc b/daily-psk.template.rsc
index 05c376e..8202eeb 100644
--- a/daily-psk.template.rsc
+++ b/daily-psk.template.rsc
@@ -2,12 +2,12 @@
# RouterOS script: daily-psk%TEMPL%
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
#
# update daily PSK (pre shared key)
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
+# https://rsc.eworm.de/doc/daily-psk.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/daily-psk.wifi.rsc b/daily-psk.wifi.rsc
index 4182ab8..3de3c5b 100644
--- a/daily-psk.wifi.rsc
+++ b/daily-psk.wifi.rsc
@@ -2,12 +2,12 @@
# RouterOS script: daily-psk.wifi
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
#
# update daily PSK (pre shared key)
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/daily-psk.md
+# https://rsc.eworm.de/doc/daily-psk.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/dhcp-lease-comment.capsman.rsc b/dhcp-lease-comment.capsman.rsc
index 947181b..3803963 100644
--- a/dhcp-lease-comment.capsman.rsc
+++ b/dhcp-lease-comment.capsman.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: dhcp-lease-comment.capsman
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=60
# requires RouterOS, version=7.14
#
# update dhcp-server lease comment with infos from access-list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
+# https://rsc.eworm.de/doc/dhcp-lease-comment.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/dhcp-lease-comment.local.rsc b/dhcp-lease-comment.local.rsc
index 27306dd..d5f1461 100644
--- a/dhcp-lease-comment.local.rsc
+++ b/dhcp-lease-comment.local.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: dhcp-lease-comment.local
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=60
# requires RouterOS, version=7.14
#
# update dhcp-server lease comment with infos from access-list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
+# https://rsc.eworm.de/doc/dhcp-lease-comment.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/dhcp-lease-comment.template.rsc b/dhcp-lease-comment.template.rsc
index 8552b26..2bddc26 100644
--- a/dhcp-lease-comment.template.rsc
+++ b/dhcp-lease-comment.template.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: dhcp-lease-comment%TEMPL%
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=60
# requires RouterOS, version=7.14
#
# update dhcp-server lease comment with infos from access-list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
+# https://rsc.eworm.de/doc/dhcp-lease-comment.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/dhcp-lease-comment.wifi.rsc b/dhcp-lease-comment.wifi.rsc
index bf67bd0..515b438 100644
--- a/dhcp-lease-comment.wifi.rsc
+++ b/dhcp-lease-comment.wifi.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: dhcp-lease-comment.wifi
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=60
# requires RouterOS, version=7.14
#
# update dhcp-server lease comment with infos from access-list
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-lease-comment.md
+# https://rsc.eworm.de/doc/dhcp-lease-comment.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/dhcp-to-dns.rsc b/dhcp-to-dns.rsc
index 1eb832a..9b94098 100644
--- a/dhcp-to-dns.rsc
+++ b/dhcp-to-dns.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: dhcp-to-dns
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=20
# requires RouterOS, version=7.16
#
# check DHCP leases and add/remove/update DNS entries
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/dhcp-to-dns.md
+# https://rsc.eworm.de/doc/dhcp-to-dns.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/firmware-upgrade-reboot.rsc b/firmware-upgrade-reboot.rsc
index f9e557c..e3d62de 100644
--- a/firmware-upgrade-reboot.rsc
+++ b/firmware-upgrade-reboot.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: firmware-upgrade-reboot
# Copyright (c) 2022-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# install firmware upgrade, and reboot
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/firmware-upgrade-reboot.md
+# https://rsc.eworm.de/doc/firmware-upgrade-reboot.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/fw-addr-lists.rsc b/fw-addr-lists.rsc
index e98a610..d41dc04 100644
--- a/fw-addr-lists.rsc
+++ b/fw-addr-lists.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: fw-addr-lists
# Copyright (c) 2023-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.16
#
# download, import and update firewall address-lists
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/fw-addr-lists.md
+# https://rsc.eworm.de/doc/fw-addr-lists.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/global-config-overlay.rsc b/global-config-overlay.rsc
index 227ae5a..9afaceb 100644
--- a/global-config-overlay.rsc
+++ b/global-config-overlay.rsc
@@ -1,12 +1,12 @@
# Overlay for global configuration by RouterOS Scripts
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# global configuration, custom overlay
-# https://git.eworm.de/cgit/routeros-scripts/about/#editing-configuration
+# https://rsc.eworm.de/#editing-configuration
# Copy relevant configuration from global-config, paste and modify it here.
-# https://git.eworm.de/cgit/routeros-scripts/about/global-config.rsc
+# https://rsc.eworm.de/global-config.rsc
# End of global-config-overlay
diff --git a/global-config.rsc b/global-config.rsc
index 3e17320..df26ef9 100644
--- a/global-config.rsc
+++ b/global-config.rsc
@@ -1,10 +1,10 @@
#!rsc by RouterOS
# RouterOS script: global-config
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# global configuration
-# https://git.eworm.de/cgit/routeros-scripts/about/
+# https://rsc.eworm.de/
# Set this to 'true' to disable news and change notifications.
:global NoNewsAndChangesNotification false;
@@ -92,11 +92,11 @@
# This defines the settings for firewall address-lists (fw-addr-lists).
:global FwAddrLists {
# "allow"={
-# { url="https://git.eworm.de/cgit/routeros-scripts/plain/fw-addr-lists.d/allow";
+# { url="https://rsc.eworm.de/main/fw-addr-lists.d/allow";
# cert="ISRG Root X2"; timeout=1w };
# };
"block"={
-# { url="https://git.eworm.de/cgit/routeros-scripts/plain/fw-addr-lists.d/block";
+# { url="https://rsc.eworm.de/main/fw-addr-lists.d/block";
# cert="ISRG Root X2" };
{ url="https://feodotracker.abuse.ch/downloads/ipblocklist_recommended.txt";
cert="GlobalSign" };
@@ -112,7 +112,7 @@
# cert="GTS Root R4" };
};
# "mikrotik"={
-# { url="https://git.eworm.de/cgit/routeros-scripts/plain/fw-addr-lists.d/mikrotik";
+# { url="https://rsc.eworm.de/main/fw-addr-lists.d/mikrotik";
# cert="ISRG Root X2"; timeout=1w };
# };
};
@@ -238,7 +238,7 @@
# This project is developed in private spare time and usage is free of charge
# for you. If you like the scripts and think this is of value for you or your
# business please consider a donation:
-# https://git.eworm.de/cgit/routeros-scripts/about/#donate
+# https://rsc.eworm.de/#donate
# Enable this to silence donation hint.
:global IDonate false;
diff --git a/global-functions.rsc b/global-functions.rsc
index a2dd279..a2ec833 100644
--- a/global-functions.rsc
+++ b/global-functions.rsc
@@ -2,12 +2,13 @@
# RouterOS script: global-functions
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch, scheduler
#
# global functions
-# https://git.eworm.de/cgit/routeros-scripts/about/
+# https://rsc.eworm.de/
:local ScriptName [ :jobname ];
@@ -1071,6 +1072,7 @@
:local ExpectedConfigVersionBefore $ExpectedConfigVersion;
:local ReloadGlobalFunctions false;
:local ReloadGlobalConfig false;
+ :local DeviceMode [ /system/device-mode/get ];
:foreach Script in=[ /system/script/find where source~"^#!rsc by RouterOS\r?\n" ] do={
:local ScriptVal [ /system/script/get $Script ];
@@ -1107,40 +1109,59 @@
}
}
- :if ([ :len $SourceNew ] > 0) do={
+ :do {
+ :if ([ :len $SourceNew ] = 0) do={
+ $LogPrint debug $0 ("No update for script '" . $ScriptVal->"name" . "'.");
+ :error false;
+ }
+
:local SourceCRLF [ :tocrlf $SourceNew ];
- :if ($SourceNew != $ScriptVal->"source" && $SourceCRLF != $ScriptVal->"source") do={
- :if ([ :pick $SourceNew 0 18 ] = "#!rsc by RouterOS\n") do={
- :local Required ([ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires RouterOS, ") ] ]->"version");
- :if ([ $RequiredRouterOS $0 [ $EitherOr $Required "0.0" ] false ] = true) do={
- :if ([ $ValidateSyntax $SourceNew ] = true) do={
- $LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
- /system/script/set owner=($ScriptVal->"name") \
- source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
- :if ($ScriptVal->"name" = "global-config") do={
- :set ReloadGlobalConfig true;
- }
- :if ($ScriptVal->"name" = "global-functions" || $ScriptVal->"name" ~ ("^mod/.")) do={
- :set ReloadGlobalFunctions true;
- }
- } else={
- $LogPrint warning $0 ("Syntax validation for script '" . $ScriptVal->"name" . \
- "' failed! Ignoring!");
- }
- } else={
- $LogPrintOnce warning $0 ("The script '" . $ScriptVal->"name" . "' requires RouterOS " . \
- $Required . ", which is not met by your installation. Ignoring!");
- }
- } else={
- $LogPrint warning $0 ("Looks like new script '" . $ScriptVal->"name" . \
+ :if ($SourceNew = $ScriptVal->"source" || $SourceCRLF = $ScriptVal->"source") do={
+ $LogPrint debug $0 ("Script '" . $ScriptVal->"name" . "' did not change.");
+ :error false;
+ }
+
+ :if ([ :pick $SourceNew 0 18 ] != "#!rsc by RouterOS\n") do={
+ $LogPrint warning $0 ("Looks like new script '" . $ScriptVal->"name" . \
"' is not valid (missing shebang). Ignoring!");
+ :error false;
+ }
+
+ :local RequiredROS ([ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires RouterOS, ") ] ]->"version");
+ :if ([ $RequiredRouterOS $0 [ $EitherOr $RequiredROS "0.0" ] false ] = false) do={
+ $LogPrintOnce warning $0 ("The script '" . $ScriptVal->"name" . "' requires RouterOS " . \
+ $RequiredROS . ", which is not met by your installation. Ignoring!");
+ :error false;
+ }
+
+ :local RequiredDM [ $ParseKeyValueStore [ $Grep $SourceNew ("\23 requires device-mode, ") ] ];
+ :local MissingDM ({});
+ :foreach Feature,Value in=$RequiredDM do={
+ :if ([ :typeof ($DeviceMode->$Feature) ] = "bool" && ($DeviceMode->$Feature) = false) do={
+ :set MissingDM ($MissingDM, $Feature);
}
- } else={
- $LogPrint debug $0 ("Script '" . $ScriptVal->"name" . "' did not change.");
}
- } else={
- $LogPrint debug $0 ("No update for script '" . $ScriptVal->"name" . "'.");
- }
+ :if ([ :len $MissingDM ] > 0) do={
+ $LogPrintOnce warning $0 ("The script '" . $ScriptVal->"name" . "' requires disabled " . \
+ "device-mode features (" . [ :tostr $MissingDM ] . "). Ignoring!");
+ :error false;
+ }
+
+ :if ([ $ValidateSyntax $SourceNew ] = false) do={
+ $LogPrint warning $0 ("Syntax validation for script '" . $ScriptVal->"name" . "' failed! Ignoring!");
+ :error false;
+ }
+
+ $LogPrint info $0 ("Updating script: " . $ScriptVal->"name");
+ /system/script/set owner=($ScriptVal->"name") \
+ source=[ $IfThenElse ($ScriptUpdatesCRLF = true) $SourceCRLF $SourceNew ] $Script;
+ :if ($ScriptVal->"name" = "global-config") do={
+ :set ReloadGlobalConfig true;
+ }
+ :if ($ScriptVal->"name" = "global-functions" || $ScriptVal->"name" ~ ("^mod/.")) do={
+ :set ReloadGlobalFunctions true;
+ }
+ } on-error={ }
}
:if ($ReloadGlobalFunctions = true) do={
@@ -1200,18 +1221,24 @@
:if ([ :len $GlobalConfigMigration ] > 0) do={
:for I from=($ExpectedConfigVersionBefore + 1) to=$ExpectedConfigVersion do={
:local Migration ($GlobalConfigMigration->[ :tostr $I ]);
- :if ([ :typeof $Migration ] = "str") do={
- :if ([ $ValidateSyntax $Migration ] = true) do={
- $LogPrint info $0 ("Applying migration for change " . $I . ": " . $Migration);
- :do {
- [ :parse $Migration ];
- } on-error={
- $LogPrint warning $0 ("Migration code for change " . $I . " failed to run!");
- }
- } else={
+ :do {
+ :if ([ :typeof $Migration ] != "str") do={
+ $LogPrint debug $0 ("Migration code for change " . $I . " is not available.");
+ :error false;
+ }
+
+ :if ([ $ValidateSyntax $Migration ] = false) do={
$LogPrint warning $0 ("Migration code for change " . $I . " failed syntax validation!");
+ :error false;
}
- }
+
+ $LogPrint info $0 ("Applying migration for change " . $I . ": " . $Migration);
+ :do {
+ [ :parse $Migration ];
+ } on-error={
+ $LogPrint warning $0 ("Migration code for change " . $I . " failed to run!");
+ }
+ } on-error={ }
}
}
diff --git a/global-wait.rsc b/global-wait.rsc
index 529dbd7..bc98462 100644
--- a/global-wait.rsc
+++ b/global-wait.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: global-wait
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# wait for global-functions to finish
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/global-wait.md
+# https://rsc.eworm.de/doc/global-wait.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/gps-track.rsc b/gps-track.rsc
index 1bd976a..5e35f8d 100644
--- a/gps-track.rsc
+++ b/gps-track.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: gps-track
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch
#
# track gps data by sending json data to http server
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/gps-track.md
+# https://rsc.eworm.de/doc/gps-track.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/hotspot-to-wpa-cleanup.capsman.rsc b/hotspot-to-wpa-cleanup.capsman.rsc
index 1d27faf..c21ec3e 100644
--- a/hotspot-to-wpa-cleanup.capsman.rsc
+++ b/hotspot-to-wpa-cleanup.capsman.rsc
@@ -1,13 +1,14 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa-cleanup.capsman
# Copyright (c) 2021-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=80
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# manage and clean up private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/hotspot-to-wpa-cleanup.template.rsc b/hotspot-to-wpa-cleanup.template.rsc
index f92dbe5..1bd877e 100644
--- a/hotspot-to-wpa-cleanup.template.rsc
+++ b/hotspot-to-wpa-cleanup.template.rsc
@@ -1,13 +1,14 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa-cleanup%TEMPL%
# Copyright (c) 2021-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=80
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# manage and clean up private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/hotspot-to-wpa-cleanup.wifi.rsc b/hotspot-to-wpa-cleanup.wifi.rsc
index cd21593..8e36204 100644
--- a/hotspot-to-wpa-cleanup.wifi.rsc
+++ b/hotspot-to-wpa-cleanup.wifi.rsc
@@ -1,13 +1,14 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa-cleanup.wifi
# Copyright (c) 2021-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: lease-script, order=80
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# manage and clean up private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/hotspot-to-wpa.capsman.rsc b/hotspot-to-wpa.capsman.rsc
index d962ba7..de9f9d9 100644
--- a/hotspot-to-wpa.capsman.rsc
+++ b/hotspot-to-wpa.capsman.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa.capsman
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# add private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/hotspot-to-wpa.template.rsc b/hotspot-to-wpa.template.rsc
index 3438be7..003b12e 100644
--- a/hotspot-to-wpa.template.rsc
+++ b/hotspot-to-wpa.template.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa%TEMPL%
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# add private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! This is just a template to generate the real script!
# !! Pattern '%TEMPL%' is replaced, paths are filtered.
diff --git a/hotspot-to-wpa.wifi.rsc b/hotspot-to-wpa.wifi.rsc
index a2bb3ca..0d6a7b9 100644
--- a/hotspot-to-wpa.wifi.rsc
+++ b/hotspot-to-wpa.wifi.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: hotspot-to-wpa.wifi
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, hotspot
#
# add private WPA passphrase after hotspot login
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/hotspot-to-wpa.md
+# https://rsc.eworm.de/doc/hotspot-to-wpa.md
#
# !! Do not edit this file, it is generated from template!
diff --git a/ip-addr-bridge.rsc b/ip-addr-bridge.rsc
index 00b45a3..68ff4a4 100644
--- a/ip-addr-bridge.rsc
+++ b/ip-addr-bridge.rsc
@@ -1,10 +1,10 @@
#!rsc by RouterOS
# RouterOS script: ip-addr-bridge
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# enable or disable ip addresses based on bridge port state
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/ip-addr-bridge.md
+# https://rsc.eworm.de/doc/ip-addr-bridge.md
:foreach Bridge in=[ /interface/bridge/find ] do={
:local BrName [ /interface/bridge/get $Bridge name ];
diff --git a/ipsec-to-dns.rsc b/ipsec-to-dns.rsc
index 39b21d5..91f6b45 100644
--- a/ipsec-to-dns.rsc
+++ b/ipsec-to-dns.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: ipsec-to-dns
# Copyright (c) 2021-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, ipsec
#
# and add/remove/update DNS entries from IPSec mode-config
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/ipsec-to-dns.md
+# https://rsc.eworm.de/doc/ipsec-to-dns.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/ipv6-update.rsc b/ipv6-update.rsc
index a2fb831..7eb625b 100644
--- a/ipv6-update.rsc
+++ b/ipv6-update.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: ipv6-update
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# update firewall and dns settings on IPv6 prefix change
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/ipv6-update.md
+# https://rsc.eworm.de/doc/ipv6-update.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/lease-script.rsc b/lease-script.rsc
index 3d0fc72..b6ceac9 100644
--- a/lease-script.rsc
+++ b/lease-script.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: lease-script
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# run scripts on DHCP lease
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/lease-script.md
+# https://rsc.eworm.de/doc/lease-script.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/leds-day-mode.rsc b/leds-day-mode.rsc
index e0f08d6..7344fde 100644
--- a/leds-day-mode.rsc
+++ b/leds-day-mode.rsc
@@ -1,9 +1,9 @@
#!rsc by RouterOS
# RouterOS script: leds-day-mode
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# enable LEDs
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
+# https://rsc.eworm.de/doc/leds-mode.md
/system/leds/settings/set all-leds-off=never;
diff --git a/leds-night-mode.rsc b/leds-night-mode.rsc
index 1f50dfd..8bd028e 100644
--- a/leds-night-mode.rsc
+++ b/leds-night-mode.rsc
@@ -1,9 +1,9 @@
#!rsc by RouterOS
# RouterOS script: leds-night-mode
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# disable LEDs
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
+# https://rsc.eworm.de/doc/leds-mode.md
/system/leds/settings/set all-leds-off=immediate;
diff --git a/leds-toggle-mode.rsc b/leds-toggle-mode.rsc
index 55d5b82..b55e351 100644
--- a/leds-toggle-mode.rsc
+++ b/leds-toggle-mode.rsc
@@ -1,9 +1,9 @@
#!rsc by RouterOS
# RouterOS script: leds-toggle-mode
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# toggle LEDs mode
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/leds-mode.md
+# https://rsc.eworm.de/doc/leds-mode.md
/system/leds/settings/set all-leds-off=(({ "never"="immediate"; "immediate"="never" })->[ get all-leds-off ]);
diff --git a/log-forward.rsc b/log-forward.rsc
index 8c2ebc0..379fa54 100644
--- a/log-forward.rsc
+++ b/log-forward.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: log-forward
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# forward log messages via notification
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/log-forward.md
+# https://rsc.eworm.de/doc/log-forward.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/mod/bridge-port-to.rsc b/mod/bridge-port-to.rsc
index ec6f612..f00e10b 100644
--- a/mod/bridge-port-to.rsc
+++ b/mod/bridge-port-to.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: mod/bridge-port-to
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# reset bridge ports to default bridge
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/bridge-port-to.md
+# https://rsc.eworm.de/doc/mod/bridge-port-to.md
:global BridgePortTo;
diff --git a/mod/bridge-port-vlan.rsc b/mod/bridge-port-vlan.rsc
index 6221646..62e71e3 100644
--- a/mod/bridge-port-vlan.rsc
+++ b/mod/bridge-port-vlan.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: mod/bridge-port-vlan
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# manage VLANs on bridge ports
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/bridge-port-vlan.md
+# https://rsc.eworm.de/doc/mod/bridge-port-vlan.md
:global BridgePortVlan;
diff --git a/mod/inspectvar.rsc b/mod/inspectvar.rsc
index 01724bb..0f05da7 100644
--- a/mod/inspectvar.rsc
+++ b/mod/inspectvar.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: mod/inspectvar
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# inspect variables
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/inspectvar.md
+# https://rsc.eworm.de/doc/mod/inspectvar.md
:global InspectVar;
:global InspectVarReturn;
diff --git a/mod/ipcalc.rsc b/mod/ipcalc.rsc
index 69dec8b..fbed74b 100644
--- a/mod/ipcalc.rsc
+++ b/mod/ipcalc.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: mod/ipcalc
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# ip address calculation
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/ipcalc.md
+# https://rsc.eworm.de/doc/mod/ipcalc.md
:global IPCalc;
:global IPCalcReturn;
diff --git a/mod/notification-email.rsc b/mod/notification-email.rsc
index 6d700f5..404e74d 100644
--- a/mod/notification-email.rsc
+++ b/mod/notification-email.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: mod/notification-email
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, email, scheduler
#
# send notifications via e-mail
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/notification-email.md
+# https://rsc.eworm.de/doc/mod/notification-email.md
:global EMailGenerateFrom;
:global FlushEmailQueue;
diff --git a/mod/notification-matrix.rsc b/mod/notification-matrix.rsc
index aad8b42..9b2b641 100644
--- a/mod/notification-matrix.rsc
+++ b/mod/notification-matrix.rsc
@@ -2,12 +2,13 @@
# RouterOS script: mod/notification-matrix
# Copyright (c) 2013-2025 Michael Gisbers <michael@gisbers.de>
# Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch, scheduler
#
# send notifications via Matrix
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/notification-matrix.md
+# https://rsc.eworm.de/doc/mod/notification-matrix.md
:global FlushMatrixQueue;
:global NotificationFunctions;
diff --git a/mod/notification-ntfy.rsc b/mod/notification-ntfy.rsc
index 53ba9b4..212fde2 100644
--- a/mod/notification-ntfy.rsc
+++ b/mod/notification-ntfy.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: mod/notification-ntfy
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch, scheduler
#
# send notifications via Ntfy (ntfy.sh)
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/notification-ntfy.md
+# https://rsc.eworm.de/doc/mod/notification-ntfy.md
:global FlushNtfyQueue;
:global NotificationFunctions;
diff --git a/mod/notification-telegram.rsc b/mod/notification-telegram.rsc
index f9700cf..c3ef2dd 100644
--- a/mod/notification-telegram.rsc
+++ b/mod/notification-telegram.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: mod/notification-telegram
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch, scheduler
#
# send notifications via Telegram
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/notification-telegram.md
+# https://rsc.eworm.de/doc/mod/notification-telegram.md
:global FlushTelegramQueue;
:global NotificationFunctions;
diff --git a/mod/scriptrunonce.rsc b/mod/scriptrunonce.rsc
index 7e01e72..e5368c4 100644
--- a/mod/scriptrunonce.rsc
+++ b/mod/scriptrunonce.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: mod/scriptrunonece
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, fetch
#
# download script and run it once
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/scriptrunonce.md
+# https://rsc.eworm.de/doc/mod/scriptrunonce.md
:global ScriptRunOnce;
diff --git a/mod/ssh-keys-import.rsc b/mod/ssh-keys-import.rsc
index ad3a81e..35aa7ec 100644
--- a/mod/ssh-keys-import.rsc
+++ b/mod/ssh-keys-import.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: mod/ssh-keys-import
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.16
#
# import ssh keys for public key authentication
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mod/ssh-keys-import.md
+# https://rsc.eworm.de/doc/mod/ssh-keys-import.md
:global SSHKeysImport;
:global SSHKeysImportFile;
diff --git a/mode-button.rsc b/mode-button.rsc
index f8bd7b8..4cf5e75 100644
--- a/mode-button.rsc
+++ b/mode-button.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: mode-button
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, scheduler
#
# act on multiple mode and reset button presses
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/mode-button.md
+# https://rsc.eworm.de/doc/mode-button.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/netwatch-dns.rsc b/netwatch-dns.rsc
index 81f9d95..467d636 100644
--- a/netwatch-dns.rsc
+++ b/netwatch-dns.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: netwatch-dns
# Copyright (c) 2022-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.16
+# requires device-mode, fetch
#
# monitor and manage dns/doh with netwatch
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/netwatch-dns.md
+# https://rsc.eworm.de/doc/netwatch-dns.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/netwatch-notify.rsc b/netwatch-notify.rsc
index e79977e..8b05c5e 100644
--- a/netwatch-notify.rsc
+++ b/netwatch-notify.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: netwatch-notify
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
#
# monitor netwatch and send notifications
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/netwatch-notify.md
+# https://rsc.eworm.de/doc/netwatch-notify.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/news-and-changes.rsc b/news-and-changes.rsc
index 545a0c9..7508b43 100644
--- a/news-and-changes.rsc
+++ b/news-and-changes.rsc
@@ -1,6 +1,6 @@
# News, changes and migration by RouterOS Scripts
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
:global IDonate;
diff --git a/ospf-to-leds.rsc b/ospf-to-leds.rsc
index 3400e7f..9d822c1 100644
--- a/ospf-to-leds.rsc
+++ b/ospf-to-leds.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: ospf-to-leds
# Copyright (c) 2020-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# visualize ospf instance state via leds
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/ospf-to-leds.md
+# https://rsc.eworm.de/doc/ospf-to-leds.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/packages-update.rsc b/packages-update.rsc
index 7644219..ff47b2a 100644
--- a/packages-update.rsc
+++ b/packages-update.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: packages-update
# Copyright (c) 2019-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
+# requires device-mode, scheduler
#
# download packages and reboot for installation
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/packages-update.md
+# https://rsc.eworm.de/doc/packages-update.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/ppp-on-up.rsc b/ppp-on-up.rsc
index ba9d0aa..85e9689 100644
--- a/ppp-on-up.rsc
+++ b/ppp-on-up.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: ppp-on-up
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# run scripts on ppp up
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/ppp-on-up.md
+# https://rsc.eworm.de/doc/ppp-on-up.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/sms-action.rsc b/sms-action.rsc
index f22a0bb..34d2127 100644
--- a/sms-action.rsc
+++ b/sms-action.rsc
@@ -1,12 +1,12 @@
#!rsc by RouterOS
# RouterOS script: sms-action
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# run action on received SMS
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/sms-action.md
+# https://rsc.eworm.de/doc/sms-action.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/sms-forward.rsc b/sms-forward.rsc
index efebb75..654fd56 100644
--- a/sms-forward.rsc
+++ b/sms-forward.rsc
@@ -2,12 +2,12 @@
# RouterOS script: sms-forward
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Anatoly Bubenkov <bubenkoff@gmail.com>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# forward SMS to e-mail
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/sms-forward.md
+# https://rsc.eworm.de/doc/sms-forward.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/super-mario-theme.rsc b/super-mario-theme.rsc
index fc868c8..726c526 100644
--- a/super-mario-theme.rsc
+++ b/super-mario-theme.rsc
@@ -1,10 +1,10 @@
#!rsc by RouterOS
# RouterOS script: super-mario-theme
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# play Super Mario theme
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/super-mario-theme.md
+# https://rsc.eworm.de/doc/super-mario-theme.md
:local Beeps {
{ 660; 100 }; 150; { 660; 100 }; 300; { 660; 100 }; 300;
diff --git a/telegram-chat.rsc b/telegram-chat.rsc
index eebb617..8f29d8c 100644
--- a/telegram-chat.rsc
+++ b/telegram-chat.rsc
@@ -1,12 +1,13 @@
#!rsc by RouterOS
# RouterOS script: telegram-chat
# Copyright (c) 2023-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.15
+# requires device-mode, fetch
#
# use Telegram to chat with your Router and send commands
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/telegram-chat.md
+# https://rsc.eworm.de/doc/telegram-chat.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/unattended-lte-firmware-upgrade.rsc b/unattended-lte-firmware-upgrade.rsc
index f1bc552..74495d1 100644
--- a/unattended-lte-firmware-upgrade.rsc
+++ b/unattended-lte-firmware-upgrade.rsc
@@ -1,10 +1,13 @@
#!rsc by RouterOS
# RouterOS script: unattended-lte-firmware-upgrade
# Copyright (c) 2018-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
+#
+# requires RouterOS, version=7.14
+# requires device-mode, scheduler
#
# schedule unattended lte firmware upgrade
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/unattended-lte-firmware-upgrade.md
+# https://rsc.eworm.de/doc/unattended-lte-firmware-upgrade.md
:foreach Interface in=[ /interface/lte/find where running ] do={
:local Firmware;
diff --git a/update-gre-address.rsc b/update-gre-address.rsc
index 4ac311a..6b169a0 100644
--- a/update-gre-address.rsc
+++ b/update-gre-address.rsc
@@ -1,13 +1,13 @@
#!rsc by RouterOS
# RouterOS script: update-gre-address
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# requires RouterOS, version=7.14
#
# update gre interface remote address with dynamic address from
# ipsec remote peer
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/update-gre-address.md
+# https://rsc.eworm.de/doc/update-gre-address.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }
diff --git a/update-tunnelbroker.rsc b/update-tunnelbroker.rsc
index 589544c..a58589b 100644
--- a/update-tunnelbroker.rsc
+++ b/update-tunnelbroker.rsc
@@ -2,13 +2,14 @@
# RouterOS script: update-tunnelbroker
# Copyright (c) 2013-2025 Christian Hesse <mail@eworm.de>
# Michael Gisbers <michael@gisbers.de>
-# https://git.eworm.de/cgit/routeros-scripts/about/COPYING.md
+# https://rsc.eworm.de/COPYING.md
#
# provides: ppp-on-up
# requires RouterOS, version=7.14
+# requires device-mode, fetch
#
# update local address of tunnelbroker interface
-# https://git.eworm.de/cgit/routeros-scripts/about/doc/update-tunnelbroker.md
+# https://rsc.eworm.de/doc/update-tunnelbroker.md
:global GlobalFunctionsReady;
:while ($GlobalFunctionsReady != true) do={ :delay 500ms; }