import: cpan: Move core-module? to top-level.

* guix/import/cpan.scm (cpan-module->sexp): Move local core-module?
procedure to ...
(core-module?): ... here.
This commit is contained in:
Eric Bavier 2016-12-12 21:57:09 -06:00
parent 63773200d7
commit d391ad57d6
No known key found for this signature in database
GPG key ID: 1EBBD204781F962C

View file

@ -116,6 +116,31 @@ (define %corelist
(and (access? core X_OK) (and (access? core X_OK)
core)))) core))))
(define core-module?
(let ((perl-version (package-version perl))
(rx (make-regexp
(string-append "released with perl v?([0-9\\.]*)"
"(.*and removed from v?([0-9\\.]*))?"))))
(lambda (name)
(define (version-between? lower version upper)
(and (version>=? version lower)
(or (not upper)
(version>? upper version))))
(and (force %corelist)
(parameterize ((current-error-port (%make-void-port "w")))
(let* ((corelist (open-pipe* OPEN_READ (force %corelist) name)))
(let loop ()
(let ((line (read-line corelist)))
(if (eof-object? line)
(begin (close-pipe corelist) #f)
(or (and=> (regexp-exec rx line)
(lambda (m)
(let ((first (match:substring m 1))
(last (match:substring m 3)))
(version-between?
first perl-version last))))
(loop)))))))))))
(define (cpan-module->sexp meta) (define (cpan-module->sexp meta)
"Return the `package' s-expression for a CPAN module from the metadata in "Return the `package' s-expression for a CPAN module from the metadata in
META." META."
@ -132,31 +157,6 @@ (define version
((? number? vrs) (number->string vrs)) ((? number? vrs) (number->string vrs))
((? string? vrs) vrs))) ((? string? vrs) vrs)))
(define core-module?
(let ((perl-version (package-version perl))
(rx (make-regexp
(string-append "released with perl v?([0-9\\.]*)"
"(.*and removed from v?([0-9\\.]*))?"))))
(lambda (name)
(define (version-between? lower version upper)
(and (version>=? version lower)
(or (not upper)
(version>? upper version))))
(and (force %corelist)
(parameterize ((current-error-port (%make-void-port "w")))
(let* ((corelist (open-pipe* OPEN_READ (force %corelist) name)))
(let loop ()
(let ((line (read-line corelist)))
(if (eof-object? line)
(begin (close-pipe corelist) #f)
(or (and=> (regexp-exec rx line)
(lambda (m)
(let ((first (match:substring m 1))
(last (match:substring m 3)))
(version-between?
first perl-version last))))
(loop)))))))))))
(define (convert-inputs phases) (define (convert-inputs phases)
;; Convert phase dependencies into a list of name/variable pairs. ;; Convert phase dependencies into a list of name/variable pairs.
(match (flatten (match (flatten