ssh: 'retrieve-files' detects remote export failures.
* guix/ssh.scm (retrieve-files): Call 'lookahead-u8' and raise a '&message' condition when it returns EOF.
This commit is contained in:
parent
23973e4fbf
commit
13164a2102
13
guix/ssh.scm
13
guix/ssh.scm
|
@ -25,7 +25,10 @@
|
||||||
#:use-module (ssh dist)
|
#:use-module (ssh dist)
|
||||||
#:use-module (ssh dist node)
|
#:use-module (ssh dist node)
|
||||||
#:use-module (srfi srfi-11)
|
#:use-module (srfi srfi-11)
|
||||||
|
#:use-module (srfi srfi-34)
|
||||||
|
#:use-module (srfi srfi-35)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
|
#:use-module (ice-9 binary-ports)
|
||||||
#:export (connect-to-remote-daemon
|
#:export (connect-to-remote-daemon
|
||||||
send-files
|
send-files
|
||||||
retrieve-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'...~%"
|
(format #t (N_ "retrieving ~a store item from '~a'...~%"
|
||||||
"retrieving ~a store items from '~a'...~%" count)
|
"retrieving ~a store items from '~a'...~%" count)
|
||||||
count (remote-store-host remote))
|
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)))
|
(let ((result (import-paths local port)))
|
||||||
(close-port port)
|
(close-port port)
|
||||||
|
|
Loading…
Reference in New Issue