~ruther/guix-local

daaa270eccb2b43dfb9eee48ac264c37174adc8c — Ricardo Wurmus 9 years ago c9ffa91
import cran: Add predicate for Bioconductor experiment packages.

* guix/import/cran.scm (bioconductor-experiment-package?): New variable.
1 files changed, 13 insertions(+), 0 deletions(-)

M guix/import/cran.scm
M guix/import/cran.scm => guix/import/cran.scm +13 -0
@@ 457,6 457,19 @@ dependencies."
            (any predicate uris))
           (_ #f)))))

(define (bioconductor-experiment-package? package)
  "Return true if PACKAGE is an R experiment package from Bioconductor."
  (let ((predicate (lambda (uri)
                     (and (string-prefix? "http://bioconductor.org" uri)
                          (string-contains uri "/data/experiment/")))))
    (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
  (upstream-updater
   (name 'cran)