scripts: import: elpa: Return consistent error code.

Fixes <https://bug.gnu.org/58308>.
Reported by Ricardo Wurmus.

* guix/scripts/import/elpa.scm (guix-import-elpa): Return consistent error
code independently of the 'recursive' option.

Signed-off-by: Josselin Poiret <dev@jpoiret.xyz>
This commit is contained in:
Simon Tournier 2023-05-15 19:45:45 +02:00 committed by Josselin Poiret
parent b89ab866bc
commit d81701a85a
No known key found for this signature in database
GPG Key ID: 505E40B916171A8A

View File

@ -97,20 +97,21 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
(package-name->name+version spec))
(when version
(warning (G_ "this importer does not consider the version~%")))
(if (assoc-ref opts 'recursive)
(with-error-handling
(map (match-lambda
((and ('package ('name name) . rest) pkg)
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
(match (if (assoc-ref opts 'recursive)
(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
(leave (G_ "failed to download package '~a'~%") package-name))
sexp)))
(or (assoc-ref opts 'repo) 'gnu))
(elpa->guix-package package-name
#:repo (assoc-ref opts 'repo)))
((or #f '())
(leave (G_ "failed to download meta-data for package '~a'~%") package-name))
(('package etc ...) `(package ,etc))
((? list? sexps) (map
(match-lambda
((and ('package ('name name) . rest) pkg)
`(define-public ,(string->symbol name)
,pkg))
(_ #f))
sexps))))
(()
(leave (G_ "too few arguments~%")))
((many ...)