~ruther/guix-local

0c357a088bb0b267df9d9bde486e6603f66cd029 — Ludovic Courtès 13 years ago eba783b
substitute-binary: Call `open-cache' only when needed.

* guix/scripts/substitute-binary.scm (lookup-narinfo): Force CACHE when
  passing it to `fetch-narinfo'.
  (guix-substitute-binary): Delay calls to `open-cache'.
1 files changed, 4 insertions(+), 3 deletions(-)

M guix/scripts/substitute-binary.scm
M guix/scripts/substitute-binary.scm => guix/scripts/substitute-binary.scm +4 -3
@@ 306,7 306,8 @@ check what it has."
                     (values #f #f)))))
    (if valid?
        cached                                    ; including negative caches
        (let ((narinfo (fetch-narinfo cache path)))
        (let ((narinfo (and=> (force cache)
                              (cut fetch-narinfo <> path))))
          (with-atomic-file-output cache-file
            (lambda (out)
              (write (cache-entry narinfo) out)))


@@ 351,7 352,7 @@ through COMMAND.  INPUT must be a file input port."
  (mkdir-p %narinfo-cache-directory)
  (match args
    (("--query")
     (let ((cache (open-cache %cache-url)))
     (let ((cache (delay (open-cache %cache-url))))
       (let loop ((command (read-line)))
         (or (eof-object? command)
             (begin


@@ 397,7 398,7 @@ through COMMAND.  INPUT must be a file input port."
               (loop (read-line)))))))
    (("--substitute" store-path destination)
     ;; Download STORE-PATH and add store it as a Nar in file DESTINATION.
     (let* ((cache   (open-cache %cache-url))
     (let* ((cache   (delay (open-cache %cache-url)))
            (narinfo (lookup-narinfo cache store-path))
            (uri     (narinfo-uri narinfo)))
       ;; Tell the daemon what the expected hash of the Nar itself is.