import cran: Distinguish Bioconductor data packages.

* guix/import/cran.scm (bioconductor-package?): Exclude Bioconductor
data packages.
(bioconductor-data-package?): New procedure.
master
Ricardo Wurmus 2016-10-26 09:47:40 +02:00
parent 1108a920bd
commit 5ae63362ae
No known key found for this signature in database
GPG Key ID: 197A5888235FACAC
1 changed files with 24 additions and 7 deletions

View File

@ -424,13 +424,30 @@ dependencies."
(define (bioconductor-package? package) (define (bioconductor-package? package)
"Return true if PACKAGE is an R package from Bioconductor." "Return true if PACKAGE is an R package from Bioconductor."
(and (string-prefix? "r-" (package-name package)) (let ((predicate (lambda (uri)
(match (and=> (package-source package) origin-uri) (and (string-prefix? "http://bioconductor.org" uri)
((? string? uri) ;; Data packages are not listed in SVN
(string-prefix? "http://bioconductor.org" uri)) (not (string-contains uri "/data/annotation/"))))))
((? list? uris) (and (string-prefix? "r-" (package-name package))
(any (cut string-prefix? "http://bioconductor.org" <>) uris)) (match (and=> (package-source package) origin-uri)
(_ #f)))) ((? string? uri)
(predicate uri))
((? list? uris)
(any predicate uris))
(_ #f)))))
(define (bioconductor-data-package? package)
"Return true if PACKAGE is an R data package from Bioconductor."
(let ((predicate (lambda (uri)
(and (string-prefix? "http://bioconductor.org" uri)
(string-contains uri "/data/annotation/")))))
(and (string-prefix? "r-" (package-name package))
(match (and=> (package-source package) origin-uri)
((? string? uri)
(predicate uri))
((? list? uris)
(any predicate uris))
(_ #f)))))
(define %cran-updater (define %cran-updater
(upstream-updater (upstream-updater