guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

04/05: ssh: 'retrieve-files' detects remote export failures.


From: Ludovic Courtès
Subject: 04/05: ssh: 'retrieve-files' detects remote export failures.
Date: Sat, 31 Dec 2016 17:36:54 +0000 (UTC)

civodul pushed a commit to branch master
in repository guix.

commit 13164a210224025384061a5d4c522fa1983c10b4
Author: Ludovic Courtès <address@hidden>
Date:   Sat Dec 31 18:34:17 2016 +0100

    ssh: 'retrieve-files' detects remote export failures.
    
    * guix/ssh.scm (retrieve-files): Call 'lookahead-u8' and raise a
    '&message' condition when it returns EOF.
---
 guix/ssh.scm |   13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/guix/ssh.scm b/guix/ssh.scm
index 226c4fd..3548243 100644
--- a/guix/ssh.scm
+++ b/guix/ssh.scm
@@ -25,7 +25,10 @@
   #:use-module (ssh dist)
   #:use-module (ssh dist node)
   #:use-module (srfi srfi-11)
+  #:use-module (srfi srfi-34)
+  #:use-module (srfi srfi-35)
   #:use-module (ice-9 match)
+  #:use-module (ice-9 binary-ports)
   #:export (connect-to-remote-daemon
             send-files
             retrieve-files
@@ -205,6 +208,16 @@ LOCAL.  When RECURSIVE? is true, retrieve the closure of 
FILES."
     (format #t (N_ "retrieving ~a store item from '~a'...~%"
                    "retrieving ~a store items from '~a'...~%" count)
             count (remote-store-host remote))
+    (when (eof-object? (lookahead-u8 port))
+      ;; The failure could be because one of the requested store items is not
+      ;; valid on REMOTE, or because Guile or Guix is improperly installed.
+      ;; TODO: Improve error reporting.
+      (raise (condition
+              (&message
+               (message
+                (format #f
+                        (_ "failed to retrieve store items from '~a'")
+                        (remote-store-host remote)))))))
 
     (let ((result (import-paths local port)))
       (close-port port)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]