summary refs log tree commit diff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-01-26 21:57:06 +0100
committerLudovic Courtès <ludo@gnu.org>2015-01-26 21:58:12 +0100
commit3bcfe23cfcb17e4495020fce7744a68c2daaf5fb (patch)
tree85774a811ce26a750f014e26ec8f78554fe0baea
parent19a454448b97d2e84164f8add9aaed42c645e338 (diff)
downloadguix-3bcfe23cfcb17e4495020fce7744a68c2daaf5fb.tar.gz
substitute-binary: Let the user know when the cache is being updated.
* guix/scripts/substitute-binary.scm (open-cache*): New macro.
  (guix-substitute-binary): Use it instead of (delay (open-cache ...)).
-rwxr-xr-xguix/scripts/substitute-binary.scm15
1 files changed, 12 insertions, 3 deletions
diff --git a/guix/scripts/substitute-binary.scm b/guix/scripts/substitute-binary.scm
index 09b917fdf6..903564cc48 100755
--- a/guix/scripts/substitute-binary.scm
+++ b/guix/scripts/substitute-binary.scm
@@ -1,5 +1,5 @@
 ;;; GNU Guix --- Functional package management for GNU
-;;; Copyright © 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2014 Nikita Karetnikov <nikita@karetnikov.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -213,6 +213,15 @@ failure."
                           (cut %make-cache url <...>)
                           '("StoreDir" "WantMassQuery")))))
 
+(define-syntax-rule (open-cache* url)
+  "Delayed variant of 'open-cache' that also lets the user know that they're
+gonna have to wait."
+  (delay (begin
+           (format (current-error-port)
+                   (_ "updating list of substitutes from '~a'...~%")
+                   url)
+           (open-cache url))))
+
 (define-record-type <narinfo>
   (%make-narinfo path uri uri-base compression file-hash file-size nar-hash nar-size
                  references deriver system signature contents)
@@ -668,7 +677,7 @@ substituter disabled~%")
    (with-error-handling                           ; for signature errors
      (match args
        (("--query")
-        (let ((cache (delay (open-cache %cache-url)))
+        (let ((cache (open-cache* %cache-url))
               (acl   (current-acl)))
           (define (valid? obj)
             (and (narinfo? obj) (valid-narinfo? obj acl)))
@@ -719,7 +728,7 @@ substituter disabled~%")
                   (loop (read-line)))))))
        (("--substitute" store-path destination)
         ;; Download STORE-PATH and add store it as a Nar in file DESTINATION.
-        (let* ((cache   (delay (open-cache %cache-url)))
+        (let* ((cache   (open-cache* %cache-url))
                (narinfo (lookup-narinfo cache store-path))
                (uri     (narinfo-uri narinfo)))
           ;; Make sure it is signed and everything.