summaryrefslogtreecommitdiff
path: root/guix/ui.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2015-02-08 18:30:20 +0100
committerLudovic Courtès <ludo@gnu.org>2015-02-08 19:00:39 +0100
commitb7071bc5bb5fdf229c2f79e8b9ba06ecbf34e656 (patch)
tree606ce1d49c756d5e7e3065edb0c9352df7b20b13 /guix/ui.scm
parent0919f5f46608577b081c4d183be6b357c7334556 (diff)
downloadguix-patches-b7071bc5bb5fdf229c2f79e8b9ba06ecbf34e656.tar
guix-patches-b7071bc5bb5fdf229c2f79e8b9ba06ecbf34e656.tar.gz
ui: Properly report '&nar-error' conditions.
This is a followup to 46b8aad. * guix/ui.scm (call-with-error-handling): Add 'nar-error?' case.
Diffstat (limited to 'guix/ui.scm')
-rw-r--r--guix/ui.scm11
1 files changed, 10 insertions, 1 deletions
diff --git a/guix/ui.scm b/guix/ui.scm
index f5ac5ede55..696d0df964 100644
--- a/guix/ui.scm
+++ b/guix/ui.scm
@@ -25,8 +25,9 @@
#:use-module (guix config)
#:use-module (guix packages)
#:use-module (guix profiles)
- #:use-module (guix build-system)
#:use-module (guix derivations)
+ #:use-module (guix build-system)
+ #:use-module (guix serialization)
#:use-module ((guix build utils) #:select (mkdir-p))
#:use-module ((guix licenses) #:select (license? license-name))
#:use-module (srfi srfi-1)
@@ -241,6 +242,14 @@ interpreted."
(leave (_ "generation ~a of profile '~a' does not exist~%")
(missing-generation-error-generation c)
(profile-error-profile c)))
+ ((nar-error? c)
+ (let ((file (nar-error-file c))
+ (port (nar-error-port c)))
+ (if file
+ (leave (_ "corrupt input while restoring '~a' from ~s~%")
+ file (or (port-filename port) port))
+ (leave (_ "corrupt input while restoring archive from ~s~%")
+ (or (port-filename port) port)))))
((nix-connection-error? c)
(leave (_ "failed to connect to `~a': ~a~%")
(nix-connection-error-file c)