From c952a9312a94bb236495ec654bf184685cf9fe79 Mon Sep 17 00:00:00 2001 From: Mathieu Othacehe Date: Sat, 5 Dec 2020 10:37:01 +0100 Subject: scripts: discover: Check for cache file existence. Fixes: https://issues.guix.gnu.org/45045. * guix/scripts/discover.scm (read-substitute-urls): Check for file existence. --- guix/scripts/discover.scm | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'guix/scripts/discover.scm') diff --git a/guix/scripts/discover.scm b/guix/scripts/discover.scm index b17dbdcb3c..007db0d49d 100644 --- a/guix/scripts/discover.scm +++ b/guix/scripts/discover.scm @@ -110,14 +110,16 @@ (define-syntax-rule (with-read-file-lock file exp ...) (define* (read-substitute-urls #:key (file (%publish-file))) "Read substitute urls list from FILE and return it. Use a read lock on FILE to synchronize with the writer." - (with-read-file-lock file - (call-with-input-file file - (lambda (port) - (let loop ((url (read-line port)) - (urls '())) - (if (eof-object? url) - urls - (loop (read-line port) (cons url urls)))))))) + (if (file-exists? file) + (with-read-file-lock file + (call-with-input-file file + (lambda (port) + (let loop ((url (read-line port)) + (urls '())) + (if (eof-object? url) + urls + (loop (read-line port) (cons url urls))))))) + '())) ;;; @@ -156,3 +158,7 @@ (define-command (guix-discover . args) (mkdir-p (dirname publish-file)) (avahi-browse-service-thread service-proc #:types %services))))) + +;;; Local Variables: +;;; eval: (put 'with-read-file-lock 'scheme-indent-function 1) +;;; End: -- cgit v1.2.3