From 7f96e5c9669f30cd22914de7f092d009faddf304 Mon Sep 17 00:00:00 2001 From: Christian Hesse Date: Thu, 18 Apr 2019 10:39:32 +0200 Subject: global-functions: add $WaitForFile, wait for file on fetch 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. --- check-certificates | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'check-certificates') diff --git a/check-certificates b/check-certificates index bd1e0ed..9dd9acb 100644 --- a/check-certificates +++ b/check-certificates @@ -10,6 +10,7 @@ :global SendNotification; :global UrlEncode; +:global WaitForFile; :local GetIssuerCN do={ :foreach IssuerI in=$1 do={ @@ -39,7 +40,9 @@ :foreach Type in={ ".pem"; ".p12" } do={ :local CertFileName ([ $UrlEncode $CommonName ] . $Type); :do { - / tool fetch check-certificate=yes-without-crl ($CertRenewUrl . $CertFileName); + / tool fetch check-certificate=yes-without-crl \ + ($CertRenewUrl . $CertFileName) dst-path=$CertFileName; + $WaitForFile $CertFileName; :foreach PassPhrase in=$CertRenewPass do={ / certificate import file-name=$CertFileName passphrase=$PassPhrase; } -- cgit v1.2.3-54-g00ecf