diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-02-08 18:30:20 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-02-08 19:00:39 +0100 |
commit | b7071bc5bb5fdf229c2f79e8b9ba06ecbf34e656 (patch) | |
tree | 606ce1d49c756d5e7e3065edb0c9352df7b20b13 | |
parent | 0919f5f46608577b081c4d183be6b357c7334556 (diff) | |
download | patches-b7071bc5bb5fdf229c2f79e8b9ba06ecbf34e656.tar 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.
-rw-r--r-- | guix/ui.scm | 11 |
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) |