[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)