[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 6/7] import cran: Add "recursive" option.
From: |
Ricardo Wurmus |
Subject: |
[PATCH 6/7] import cran: Add "recursive" option. |
Date: |
Mon, 23 May 2016 17:40:07 +0200 |
* guix/scripts/import/cran.scm: (%options): Add "recursive" option.
(guix-import-cran): Handle "recursive" option.
---
guix/scripts/import/cran.scm | 26 ++++++++++++++++++++------
1 file changed, 20 insertions(+), 6 deletions(-)
diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm
index ace1123..4cae9da 100644
--- a/guix/scripts/import/cran.scm
+++ b/guix/scripts/import/cran.scm
@@ -63,6 +63,9 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(lambda (opt name arg result)
(alist-cons 'repo (string->symbol arg)
(alist-delete 'repo result))))
+ (option '(#\r "recursive") #f #f
+ (lambda (opt name arg result)
+ (alist-cons 'recursive #t result)))
%standard-import-options))
@@ -88,12 +91,23 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(reverse opts))))
(match args
((package-name)
- (let ((sexp (cran->guix-package package-name
- (or (assoc-ref opts 'repo) 'cran))))
- (unless sexp
- (leave (_ "failed to download description for package '~a'~%")
- package-name))
- sexp))
+ (if (assoc-ref opts 'recursive)
+ ;; Recursive import
+ (map (match-lambda
+ ((and (label . (('package ('name name) . rest)))
+ (label . (pkg)))
+ `(define-public ,(string->symbol name)
+ ,pkg))
+ (_ #f))
+ (recursive-import package-name
+ (or (assoc-ref opts 'repo) 'cran)))
+ ;; Single import
+ (let ((sexp (cran->guix-package package-name
+ (or (assoc-ref opts 'repo) 'cran))))
+ (unless sexp
+ (leave (_ "failed to download description for package '~a'~%")
+ package-name))
+ sexp)))
(()
(leave (_ "too few arguments~%")))
((many ...)
--
2.7.3
- [PATCH] Add recursive CRAN importer, Ricardo Wurmus, 2016/05/23
- [PATCH 1/7] import cran: Remove more invalid characters from package names., Ricardo Wurmus, 2016/05/23
- [PATCH 2/7] import cran: Move guix-name to top-level., Ricardo Wurmus, 2016/05/23
- [PATCH 3/7] import cran: description->package: Also return package dependencies., Ricardo Wurmus, 2016/05/23
- [PATCH 4/7] import cran: Ignore default R packages., Ricardo Wurmus, 2016/05/23
- [PATCH 5/7] import cran: Add recursive importer., Ricardo Wurmus, 2016/05/23
- [PATCH 6/7] import cran: Add "recursive" option.,
Ricardo Wurmus <=
- [PATCH 7/7] guix import: Print list of expressions., Ricardo Wurmus, 2016/05/23
- Re: [PATCH] Add recursive CRAN importer, Ricardo Wurmus, 2016/05/24