summaryrefslogtreecommitdiff
path: root/guix/scripts/import/cran.scm
diff options
context:
space:
mode:
authorRicardo Wurmus <rekado@elephly.net>2020-12-17 10:40:30 +0100
committerRicardo Wurmus <rekado@elephly.net>2020-12-22 14:18:34 +0100
commit5f5e3873d735d13824c172d779e6095d6947f340 (patch)
tree94018b99252dd85b076e63c077a03ead24050fdf /guix/scripts/import/cran.scm
parent08c4dd518a3263a5b61bc41b20e2e4fec322376d (diff)
downloadguix-patches-5f5e3873d735d13824c172d779e6095d6947f340.tar
guix-patches-5f5e3873d735d13824c172d779e6095d6947f340.tar.gz
import/cran: Add input style "specification".
* guix/import/cran.scm (%input-style): New parameter. (format-inputs): Use it. * guix/scripts/import/cran.scm (guix-import-cran): Set the %input-style parameter. (%options): Add "--style" option. * doc/guix.texi (Invoking guix import): Document it.
Diffstat (limited to 'guix/scripts/import/cran.scm')
-rw-r--r--guix/scripts/import/cran.scm45
1 files changed, 25 insertions, 20 deletions
diff --git a/guix/scripts/import/cran.scm b/guix/scripts/import/cran.scm
index 20e82ae2ca..4767bc082d 100644
--- a/guix/scripts/import/cran.scm
+++ b/guix/scripts/import/cran.scm
@@ -67,6 +67,10 @@ 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 '(#\s "style") #t #f
+ (lambda (opt name arg result)
+ (alist-cons 'style (string->symbol arg)
+ (alist-delete 'style result))))
(option '(#\r "recursive") #f #f
(lambda (opt name arg result)
(alist-cons 'recursive #t result)))
@@ -93,23 +97,24 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
value)
(_ #f))
(reverse opts))))
- (match args
- ((package-name)
- (if (assoc-ref opts 'recursive)
- ;; Recursive import
- (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))))
- (unless sexp
- (leave (G_ "failed to download description for package '~a'~%")
- package-name))
- sexp)))
- (()
- (leave (G_ "too few arguments~%")))
- ((many ...)
- (leave (G_ "too many arguments~%"))))))
+ (parameterize ((%input-style (assoc-ref opts 'style)))
+ (match args
+ ((package-name)
+ (if (assoc-ref opts 'recursive)
+ ;; Recursive import
+ (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))))
+ (unless sexp
+ (leave (G_ "failed to download description for package '~a'~%")
+ package-name))
+ sexp)))
+ (()
+ (leave (G_ "too few arguments~%")))
+ ((many ...)
+ (leave (G_ "too many arguments~%")))))))