diff options
author | Ricardo Wurmus <rekado@elephly.net> | 2020-12-12 00:06:18 +0100 |
---|---|---|
committer | Ricardo Wurmus <rekado@elephly.net> | 2020-12-12 00:08:27 +0100 |
commit | 482b8ae2cd3f126a1300178e317df8993bf75b16 (patch) | |
tree | f21e58812ed70ea1126a40d8548f59f19be9702d | |
parent | 7eb920351abc7757ee9711ac147e63d6936e5ee8 (diff) | |
download | guix-482b8ae2cd3f126a1300178e317df8993bf75b16.tar guix-482b8ae2cd3f126a1300178e317df8993bf75b16.tar.gz |
import/cran: Abort with error message when recursive import fails.
Previously, after a failed recursive import "guix import" would signal
success.
* guix/import/cran.scm (cran->guix-package): Raise a condition when all
repositories have been exhausted.
* guix/scripts/import/cran.scm (guix-import-cran): Handle errors.
-rw-r--r-- | guix/import/cran.scm | 6 | ||||
-rw-r--r-- | guix/scripts/import/cran.scm | 9 |
2 files changed, 10 insertions, 5 deletions
diff --git a/guix/import/cran.scm b/guix/import/cran.scm index 6c1fbd7ba3..1d25a5125e 100644 --- a/guix/import/cran.scm +++ b/guix/import/cran.scm @@ -29,6 +29,7 @@ #:use-module (srfi srfi-11) #:use-module (srfi srfi-26) #:use-module (srfi srfi-34) + #:use-module (srfi srfi-35) #:use-module (ice-9 receive) #:use-module (web uri) #:use-module (guix memoization) @@ -585,7 +586,10 @@ s-expression corresponding to that package, or #f on failure." ((bioconductor) ;; Retry import from CRAN (cran->guix-package package-name #:repo 'cran)) - (else (values #f '())))))))) + (else + (raise (condition + (&message + (message "couldn't find meta-data for R package"))))))))))) (define* (cran-recursive-import package-name #:key (repo 'cran)) (recursive-import package-name diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm index 33944c4a3f..20e82ae2ca 100644 --- a/guix/scripts/import/cran.scm +++ b/guix/scripts/import/cran.scm @@ -97,10 +97,11 @@ Import and convert the CRAN package for PACKAGE-NAME.\n")) ((package-name) (if (assoc-ref opts 'recursive) ;; Recursive import - (map package->definition - (filter identity - (cran-recursive-import package-name - #:repo (or (assoc-ref opts 'repo) 'cran)))) + (with-error-handling + (map package->definition + (filter identity + (cran-recursive-import package-name + #:repo (or (assoc-ref opts 'repo) 'cran))))) ;; Single import (let ((sexp (cran->guix-package package-name #:repo (or (assoc-ref opts 'repo) 'cran)))) |