civodul pushed a commit to branch master
in repository guix.
commit 03856dce4ed1d3f76978f7e88bbf2012a4539d1b
Author: Simon Tournier <[email protected]>
AuthorDate: Mon Apr 24 17:51:18 2023 +0200
scripts: import: crate: Handle non-existent package.
Fixes <https://bugs/gnu.org/63020>.
* guix/scripts/import/crate.scm (guix-import-crate): Handle non-existent
package input.
Signed-off-by: Ludovic Courtès <[email protected]>
---
guix/scripts/import/crate.scm | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/guix/scripts/import/crate.scm b/guix/scripts/import/crate.scm
index 97152904ac..038faa87db 100644
--- a/guix/scripts/import/crate.scm
+++ b/guix/scripts/import/crate.scm
@@ -4,6 +4,7 @@
;;; Copyright © 2016 David Craven <[email protected]>
;;; Copyright © 2019, 2020 Martin Becze <[email protected]>
;;; Copyright © 2021 Sarah Morgensen <[email protected]>
+;;; Copyright © 2023 Simon Tournier <[email protected]>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -90,15 +91,16 @@ Import and convert the crates.io package for
PACKAGE-NAME.\n"))
(define-values (name version)
(package-name->name+version spec))
- (if (assoc-ref opts 'recursive)
- (crate-recursive-import name #:version version)
- (let ((sexp (crate->guix-package name #:version version
#:include-dev-deps? #t)))
- (unless sexp
- (leave (G_ "failed to download meta-data for package '~a'~%")
- (if version
- (string-append name "@" version)
- name)))
- (list sexp))))
+ (match (if (assoc-ref opts 'recursive)
+ (crate-recursive-import name #:version version)
+ (crate->guix-package name #:version version
#:include-dev-deps? #t))
+ ((or #f '())
+ (leave (G_ "failed to download meta-data for package '~a'~%")
+ (if version
+ (string-append name "@" version)
+ name)))
+ ((? list? sexps) sexps)
+ (sexp (list sexp))))
(()
(leave (G_ "too few arguments~%")))
((many ...)