diff options
author | Mathieu Othacehe <othacehe@gnu.org> | 2020-12-05 10:37:01 +0100 |
---|---|---|
committer | Mathieu Othacehe <othacehe@gnu.org> | 2020-12-05 10:38:52 +0100 |
commit | c952a9312a94bb236495ec654bf184685cf9fe79 (patch) | |
tree | f9f82744a1e8d13979a7ed8170a6015303dc89c1 | |
parent | 4cf3734c56d669ee2d78082e5d7c4d0a58e0f800 (diff) |
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.
-rw-r--r-- | guix/scripts/discover.scm | 22 |
1 files changed, 14 insertions, 8 deletions
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 @@ lock on FILE to synchronize with any potential readers." (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 @@ to synchronize with the writer." (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: |