[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH 6/7] import cran: Add "recursive" option.
From: |
Ludovic Courtès |
Subject: |
Re: [PATCH 6/7] import cran: Add "recursive" option. |
Date: |
Mon, 30 May 2016 10:55:23 +0200 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/24.5 (gnu/linux) |
Ricardo Wurmus <address@hidden> skribis:
> * 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))
Perhaps it could check with ‘find-packages-by-name’ whether NAME already
exists?
> + (_ #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)))
Do you think this could be moved to (guix scripts import)? We would
have to change other importers to return an empty list/stream of
dependencies for now.
Thanks,
Ludo’.
- [PATCH 1/7] import cran: Remove more invalid characters from package names., (continued)
- [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, 2016/05/23
- Re: [PATCH 6/7] import cran: Add "recursive" option.,
Ludovic Courtès <=
- [PATCH 7/7] guix import: Print list of expressions., Ricardo Wurmus, 2016/05/23
- [PATCH] Add recursive CRAN importer, Ricardo Wurmus, 2016/05/24
- Re: [PATCH] Add recursive CRAN importer, Ricardo Wurmus, 2016/05/24