diff options
Diffstat (limited to 'guix/scripts/import')
-rw-r--r-- | guix/scripts/import/elpa.scm | 15 | ||||
-rw-r--r-- | guix/scripts/import/json.scm | 10 |
2 files changed, 16 insertions, 9 deletions
diff --git a/guix/scripts/import/elpa.scm b/guix/scripts/import/elpa.scm index 07ac07a3d5..d6b38e5c4b 100644 --- a/guix/scripts/import/elpa.scm +++ b/guix/scripts/import/elpa.scm @@ -96,13 +96,14 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n")) (match args ((package-name) (if (assoc-ref opts 'recursive) - (map (match-lambda - ((and ('package ('name name) . rest) pkg) - `(define-public ,(string->symbol name) - ,pkg)) - (_ #f)) - (elpa-recursive-import package-name - (or (assoc-ref opts 'repo) 'gnu))) + (with-error-handling + (map (match-lambda + ((and ('package ('name name) . rest) pkg) + `(define-public ,(string->symbol name) + ,pkg)) + (_ #f)) + (elpa-recursive-import package-name + (or (assoc-ref opts 'repo) 'gnu)))) (let ((sexp (elpa->guix-package package-name #:repo (assoc-ref opts 'repo)))) (unless sexp diff --git a/guix/scripts/import/json.scm b/guix/scripts/import/json.scm index 778e5f4bc5..d8d5c3a4af 100644 --- a/guix/scripts/import/json.scm +++ b/guix/scripts/import/json.scm @@ -1,6 +1,7 @@ ;;; GNU Guix --- Functional package management for GNU ;;; Copyright © 2014 Eric Bavier <bavier@member.fsf.org> ;;; Copyright © 2015, 2017 Ricardo Wurmus <rekado@elephly.net> +;;; Copyright © 2021 Simon Tournier <zimon.toutoune@gmail.com> ;;; ;;; This file is part of GNU Guix. ;;; @@ -88,8 +89,13 @@ Import and convert the JSON package definition in PACKAGE-FILE.\n")) (reverse opts)))) (match args ((file-name) - (or (json->code file-name) - (leave (G_ "invalid JSON in file '~a'~%") file-name))) + (catch 'system-error + (lambda () + (or (json->code file-name) + (leave (G_ "invalid JSON in file '~a'~%") file-name))) + (lambda args + (leave (G_ "failed to access '~a': ~a~%") + file-name (strerror (system-error-errno args)))))) (() (leave (G_ "too few arguments~%"))) ((many ...) |