aboutsummaryrefslogtreecommitdiffstats
path: root/global-functions
AgeCommit message (Collapse)AuthorFilesLines
2020-06-29global-functions: $GetRandomNumber: return 32bit number without limitGravatar Christian Hesse1-1/+4
2020-06-23global-functions: add $IPCalcGravatar Christian Hesse1-0/+17
[admin@MikroTik] > $IPCalc 192.168.88.188/20 Address: 192.168.88.188 Netmask: 255.255.240.0 Network: 192.168.80.0/20 HostMin: 192.168.80.1 HostMax: 192.168.95.254 Broadcast: 192.168.95.255
2020-06-19explicitly name the licenseGravatar Christian Hesse1-0/+1
Copyright (C) 2013-2020 Christian Hesse <mail@eworm.de> This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. https://www.gnu.org/licenses/#GPL https://www.gnu.org/licenses/gpl.html https://www.gnu.org/licenses/gpl.md
2020-06-18global-functions: $GetRandomNumber: use $GetRandomSha256Gravatar Christian Hesse1-6/+12
2020-06-18global-functions: rename $GetRandom -> $GetRandomNumberGravatar Christian Hesse1-4/+4
2020-06-18global-functions: add $GetRandomSha256Gravatar Christian Hesse1-0/+12
2020-05-26global-functions: add $WaitFullyConnectedGravatar Christian Hesse1-0/+12
2020-05-26global-functions: add $WaitDNSResolvingGravatar Christian Hesse1-0/+10
2020-05-26global-functions: add $DNSIsResolvingGravatar Christian Hesse1-0/+11
2020-05-17global-functions: $WaitTimeSync: replace comment with debug outputGravatar Christian Hesse1-1/+2
2020-05-17global-functions: $DownloadPackage: replace comment with debug outputGravatar Christian Hesse1-1/+1
2020-05-15global-functions: $MailServerIsUp: handle resolve errorsGravatar Christian Hesse1-1/+6
2020-05-15global-functions: $MailServerIsUp: remove duplicate defineGravatar Christian Hesse1-1/+0
2020-05-15global-functions: $MailServerIsUp: use prepared valueGravatar Christian Hesse1-1/+1
2020-05-15global-functions: $WaitTimeSync: run rotate-ntp less frequentlyGravatar Christian Hesse1-1/+1
2020-05-13global-functions: $WaitTimeSync: failing rotate-ntp is not fatalGravatar Christian Hesse1-1/+5
Resolving ntp servers fais if internet connectivity is not established. So this is not fatal, we want to catch error and fall through, then continue.
2020-05-04global-functions: $ScriptInstallUpdate: log when reloading codeGravatar Christian Hesse1-0/+2
2020-05-04global-functions: $DownloadPackage: support downloading bundleGravatar Christian Hesse1-1/+1
2020-04-24global-functions: $CertificateNameByCN: replace apostropheGravatar Christian Hesse1-1/+2
2020-04-22global-functions: add $WaitDefaultRouteReachableGravatar Christian Hesse1-0/+10
2020-04-22global-functions: add $DefaultRouteIsReachableGravatar Christian Hesse1-0/+9
2020-04-22global-functions: $TimeIsSync: unbreak with bundled ntp clientGravatar Christian Hesse1-3/+10
2020-04-07global-functions: $DownloadPackage: do not re-downloadGravatar Christian Hesse1-0/+5
2020-04-03global-functions: $SendTelegram: use $LogPrintExitGravatar Christian Hesse1-1/+1
2020-04-03global-functions: $SendEMail: use $LogPrintExitGravatar Christian Hesse1-1/+3
2020-04-03global-functions: $ScriptFromTerminal: use $LogPrintExitGravatar Christian Hesse1-1/+4
2020-04-03global-functions: $MailServerIsUp: use $LogPrintExitGravatar Christian Hesse1-1/+3
2020-04-03global-functions: $CertificateDownload: use $LogPrintExitGravatar Christian Hesse1-3/+4
2020-04-03global-functions: $CertificateAvailable: use $LogPrintExitGravatar Christian Hesse1-3/+6
2020-04-03global-functions: $SendTelegram: check status of certificate downloadGravatar Christian Hesse1-2/+5
2020-04-03global-functions: $GetMacVendor: check status of certificate downloadGravatar Christian Hesse1-3/+5
2020-04-03global-functions: $DownloadPackage: check status of certificate downloadGravatar Christian Hesse1-1/+4
2020-04-03global-functions: $Certificate{Available,Download}: return and check statusGravatar Christian Hesse1-2/+9
2020-04-01global-functions: $ScriptInstallUpdate: log and print changesGravatar Christian Hesse1-0/+2
2020-03-31global-functions: $SendTelegram: always return a valueGravatar Christian Hesse1-1/+1
... overwise it opens a prompt "value:".
2020-03-31global-functions: $SendEMail: always return a valueGravatar Christian Hesse1-1/+1
... overwise it opens a prompt "value:".
2020-03-31global-functions: $ScriptInstallUpdate: ignore empty scriptsGravatar Christian Hesse1-1/+1
Now that script-updates is gone we support installing new scripts with $ScriptInstallUpdate only.
2020-03-27ask for GitHub and GitLab starschange-16Gravatar Christian Hesse1-1/+1
2020-03-27Notify about new documentation!change-15Gravatar Christian Hesse1-1/+1
2020-03-27link global-{config,config-overlay,functions} to main READMEGravatar Christian Hesse1-0/+1
2020-03-23completely replace script-updates with $ScriptInstallUpdatechange-14Gravatar Christian Hesse1-3/+133
2020-03-20global-functions: introduce $MkDirGravatar Christian Hesse1-0/+18
This is a dirty hack... RouterOS does not support creating directories, so we mis-use http server and fetch tool.
2020-03-12add script 'global-wait'Gravatar Christian Hesse1-0/+4
Run this in schedulers that fire on startup without interval. Schedulers should look something like this: / system scheduler { add name=global-scripts on-event="/ system script { run global-config; run global-config-overlay; run global-functions; }" start-time=startup; add name=bridge-port-to-default on-event="/ system script { run global-wait; run bridge-port-to-default; }" start-time=startup; }
2020-03-09global-functions: $DeviceInfo: more indentionGravatar Christian Hesse1-5/+5
2020-03-05global-functions: $SendEMail: invert conditionGravatar Christian Hesse1-11/+13
2020-03-05global-functions: $SendTelegram: invert conditionGravatar Christian Hesse1-10/+12
2020-03-05global-functions: $SendTelegram: allow to override chatidGravatar Christian Hesse1-2/+8
This allows to send Telegram messages to different contact or group. Use something like this: /system scheduler add name=netwatch-notify interval=1m start-time=startup \ on-event=":global TelegramChatIdOverride \"-1234\"; / system script run netwatch-notify; :set TelegramChatIdOverride;"
2020-03-05always use severity 'warning', not just 'warn'Gravatar Christian Hesse1-2/+2
2020-03-05global-functions: $LogPrintExit: add debugging optionGravatar Christian Hesse1-7/+12
2020-03-03bridge-port-to-default: use $ParseKeyValueStore...change-13Gravatar Christian Hesse1-1/+1
... and unbreak last commit removing delay (69352c90). This requires a change in configuration syntax. Change this... comment="default:br-local, alt:br-guest" to... comment="default=br-local, alt=br-guest"
2020-02-28global-functions: sort alphabeticallyGravatar Christian Hesse1-281/+280
2020-02-27global-functions: $ScriptLock: use $LogPrintExitGravatar Christian Hesse1-2/+3
2020-02-26global-functions: merge $LogAnd{Error,Put} to $LogPrintExit ...Gravatar Christian Hesse1-16/+17
... and fix logging. Logging with severity from variable (:log $severity ...) is not possible, this is considered a syntax error. Also the 'workaround' with parsing code failed with missing message in log. The reliable code is a lot longer, so merge the two functions to save a lot of duplicate code.
2020-02-26global-functions: introduce $LogAndPutGravatar Christian Hesse1-0/+10
2020-02-26global-functions: $LogAndError: add severityGravatar Christian Hesse1-3/+4
2020-02-24global-functions: introduce $LogAndErrorGravatar Christian Hesse1-0/+9
2020-02-24global-functions: $WaitTimeSync: rotate ntp servers minutelyGravatar Christian Hesse1-0/+4
Signed-off-by: Christian Hesse <mail@eworm.de>
2020-02-24global-functions: introduce $WaitTimeSyncGravatar Christian Hesse1-0/+10
2020-02-24global-functions: introduce $TimeIsSyncGravatar Christian Hesse1-0/+16
2020-02-24global-functions: introduce $MailServerIsUpGravatar Christian Hesse1-0/+22
2020-02-06global-functions: introduce and use $CertificateNameByCNGravatar Christian Hesse1-2/+13
2020-02-04global-config: drop $ScriptUpdatesConfigChangesIgnorechange-12Gravatar Christian Hesse1-1/+1
Comment or remove $GlobalConfigVersion in global-config-overlay to disable change notifications.
2020-02-03global-functions: $CharacterReplace: do not limit string lengthGravatar Christian Hesse1-2/+1
I've tried something like this to update a device: / system script set source=[ $CharacterReplace [ get global-config-overlay source ] "GlobalConfigVersion 10" "GlobalConfigVersion 11" ] global-config-overlay; This broke with global-config-overlay longer than 999 characters. So makes sure there is no limit for string length.
2020-02-02global-functions: $CertificateAvailable: simplify loopGravatar Christian Hesse1-4/+4
2020-01-29README: update instructions to use $ScriptInstallUpdatechange-11Gravatar Christian Hesse1-1/+1
2020-01-29global-functions: add $ScriptInstallUpdateGravatar Christian Hesse1-0/+14
Just call without parameters to update scripts: [admin@MikroTik] > $InstallAndUpdate Add comma separated list of scripts to install and update: [admin@MikroTik] > $InstallAndUpdate cloud-backup[,upload-backup][,...]
2020-01-29global-functions: $CertificateAvailable: check whole chainGravatar Christian Hesse1-0/+12
The root certificate is a self-signed certificate. Check for the issue certificate until we find the self-signed one.
2020-01-29global-functions: $CertificateAvailable: warn about crl download to flashGravatar Christian Hesse1-0/+6
Downloading certificate crls to flash can fill up all available space. So warn about it!
2020-01-28global-functions: replace deprecated keep-result=no with output=noneGravatar Christian Hesse1-1/+1
2020-01-06global-functions: $CertificateDownload: properly name new certificatesGravatar Christian Hesse1-0/+5
2020-01-03global-functions: do not encode dash, dot, slash and underscoreGravatar Christian Hesse1-4/+3
2020-01-03global-functions: $Certificate*: add quoting around CNGravatar Christian Hesse1-2/+2
2020-01-03global-functions: split $CertificateAvailable to $CertificateDownloadGravatar Christian Hesse1-17/+28
This allows to force download even if certificate is available. We need this for a clean update path with Let's Encrypt.
2020-01-01update copyright for 2020Gravatar Christian Hesse1-1/+1
2019-12-10global-functions: define first, set laterGravatar Christian Hesse1-16/+34
2019-12-05global-functions: $DownloadPackage: retry on errorGravatar Christian Hesse1-12/+17
2019-12-03global-functions: introduce $ScriptFromTerminalGravatar Christian Hesse1-0/+18
Checking whether or not started from terminal is tricky... We have to find the job for the script, find its top most parent and get its type.
2019-11-28global-functions: $DeviceInfo: append revision to modelGravatar Christian Hesse1-1/+5
2019-10-28global-functions: add architecture in device infoGravatar Christian Hesse1-2/+3
2019-10-14check-health: make threshold for voltage configurablechange-10Gravatar Christian Hesse1-1/+1
2019-09-12introduce global-config-overlaychange-9Gravatar Christian Hesse1-1/+1
2019-09-12global-functions: $DeviceInfo: handle configuration versionGravatar Michael Gisbers1-0/+10
2019-09-12global-functions: introduce and use $DeviceInfoGravatar Christian Hesse1-0/+29
2019-08-30script-updates: add donation hint in configuration warning notificationchange-8Gravatar Christian Hesse1-1/+1
2019-08-27add script 'check-health'change-7Gravatar Christian Hesse1-1/+1
This may be incomplete... Please report if you have missing PSUs, ttemperature sensors, whatever.
2019-08-18global-functions: support sending silent telegram notificationsGravatar Christian Hesse1-4/+6
2019-08-18global-functions: split off $SendEMail and $SendTelegramGravatar Christian Hesse1-9/+31
2019-08-01global-functions: $DownloadPackage: re-introduce check for valid packageGravatar Christian Hesse1-0/+5
Even if fetch tool does its job right now... Chances are that the download servers have corrupted or empty files.
2019-07-26global-functions: add $RandomDelayGravatar Christian Hesse1-0/+7
2019-07-26global-functions: add $GetRandomGravatar Christian Hesse1-0/+13
2019-07-19global-functions: $DownloadPackage: fix downloading for CHR / x86_64Gravatar Christian Hesse1-0/+3
2019-07-19add script 'upload-backup'change-6Gravatar Christian Hesse1-1/+1
2019-07-17global-functions: add $ParseKeyValueStoreGravatar Christian Hesse1-0/+16
2019-07-16global-functions: $CharacterReplace: use same condition in loopGravatar Christian Hesse1-1/+1
2019-07-16global-functions: append system note in e-mail signatureGravatar Christian Hesse1-1/+6
2019-06-14backup: split off cloud-backupchange-5Gravatar Christian Hesse1-1/+1
Currently backup to MikroTik cloud is pretty unreliable and script can not catch errors at runtime. Looks like this does not change any time soon (Ticket#2019052022003204). So let's just split off the cloud backup to make sure email backup works as expected.
2019-04-30global-functions: $CertificateAvailable: fetch by CommonNameGravatar Christian Hesse1-8/+11
Now that we have a proper $UrlEncode function... Fetch certificates by CommonName. Also remove the PEM after import.
2019-04-30global-functions: add $WaitForFile, wait for file on fetchGravatar Christian Hesse1-0/+22
The fetch command is asynchronous, the file is not guaranteed to be available when command terminates. I opened an issue at Mikrotik support (Ticket#2019041722004999), their answer: > You should perform a check in a loop. > :delay until file exist > > That can happen also with any configuration not just files. So add a function to wait for a file with given name. I have not seen this with other configuration, though.
2019-04-09drop deprecated mode= for fetchGravatar Christian Hesse1-2/+2
2019-04-03script-updates: send global-config changes notification just onceGravatar Christian Hesse1-0/+1