From 149590380adb240e0993931b4f72e6f285b24483 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Tue, 17 May 2016 13:41:07 +0200 Subject: import: Gracefully report import failures. Previously, something like 'guix import gnu which' would spit out a backtrace if, say, the 'which' tarball could not be authenticated. * guix/upstream.scm (download-tarball): Mention failure modes in docstring. * guix/import/gnu.scm (gnu-package->sexp): Return #f when 'download-tarball' returns #f. * guix/scripts/import.scm (guix-import): Call 'leave' when IMPORTER does not return a (package ...) sexp. --- guix/scripts/import.scm | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'guix/scripts/import.scm') diff --git a/guix/scripts/import.scm b/guix/scripts/import.scm index cf8fc073b2..e54744feca 100644 --- a/guix/scripts/import.scm +++ b/guix/scripts/import.scm @@ -107,6 +107,10 @@ Run IMPORTER with ARGS.\n")) (show-version-and-exit "guix import")) ((importer args ...) (if (member importer importers) - (let ((expr (apply (resolve-importer importer) args))) - (pretty-print expr (newline-rewriting-port (current-output-port)))) + (match (apply (resolve-importer importer) args) + ((and expr ('package _ ...)) + (pretty-print expr (newline-rewriting-port + (current-output-port)))) + (x + (leave (_ "'~a' import failed~%") importer))) (leave (_ "~a: invalid importer~%") importer))))) -- cgit v1.2.3