(import (json)
(gnu packages)
(guix packages)
(guix import cran)
(guix import utils)
(srfi srfi-1)
(ice-9 pretty-print))
(define %bad
'("bioCancer" "visNetwork"
"DiagrammeR"
))
(define json
(vector->list
(call-with-input-file
"/home/rekado/dev/gx/branches/master/packages.js.1"
json->scm)))
(define all
(map (compose car vector->list) json))
(define existing
(fold-packages
(lambda (pkg res)
(if (eq? (package-build-system pkg)
(@ (guix build-system r) r-build-system))
(cons (or (and=> (package-properties pkg)
(lambda (prop)
(assoc-ref prop 'upstream-name)))
(string-drop (package-name pkg) 2))
res)
res))
(list)))
(define missing
(lset-difference string= all existing))
(define (import-from-bioc names)
(append-map
(lambda (name)
(map package->definition
(filter identity
(cran-recursive-import name #:repo 'bioconductor))))
(remove (lambda (name) (member name %bad)) names)))
(pretty-print (import-from-bioc (take (drop missing 100) 10)))