import: utils: 'recursive-import' returns a list rather than a stream.

* guix/import/utils.scm (recursive-import): Remove 'list->stream' call.
* guix/scripts/import/cran.scm (guix-import-cran): Remove 'stream->list'
call.
* guix/scripts/import/crate.scm (guix-import-crate): Likewise.
* guix/scripts/import/elpa.scm (guix-import-elpa): Likewise.
* guix/scripts/import/gem.scm (guix-import-gem): Likewise.
* guix/scripts/import/hackage.scm (guix-import-hackage): Likewise.
* guix/scripts/import/opam.scm (guix-import-opam): Likewise.
* guix/scripts/import/pypi.scm (guix-import-pypi): Likewise.
* guix/scripts/import/stackage.scm (guix-import-stackage): Likewise.
* tests/gem.scm ("gem-recursive-import"): Likewise.
* tests/import-utils.scm ("recursive-import"): Likewise.

Co-authored-by: Brian Leung <bkleung89@gmail.com>
This commit is contained in:
Ludovic Courtès 2019-12-11 10:52:58 +01:00
parent ddd5915900
commit 70a8e13277
No known key found for this signature in database
GPG Key ID: 090B11993D9AEBB5
11 changed files with 31 additions and 52 deletions

View File

@ -44,7 +44,6 @@
#:use-module (srfi srfi-9) #:use-module (srfi srfi-9)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-26) #:use-module (srfi srfi-26)
#:use-module (srfi srfi-41)
#:export (factorize-uri #:export (factorize-uri
flatten flatten
@ -422,11 +421,10 @@ name corresponding to the upstream name."
(receive (package dependencies) (repo->guix-package name repo) (receive (package dependencies) (repo->guix-package name repo)
(make-node name package dependencies))) (make-node name package dependencies)))
(list->stream ;TODO: remove streams (map node-package
(map node-package (topological-sort (list (lookup-node package-name))
(topological-sort (list (lookup-node package-name)) (lambda (node)
(lambda (node) (map lookup-node
(map lookup-node (remove exists?
(remove exists? (node-dependencies node))))
(node-dependencies node)))) node-name)))
node-name))))

View File

@ -27,7 +27,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-cran)) #:export (guix-import-cran))
@ -98,9 +97,8 @@ Import and convert the CRAN package for PACKAGE-NAME.\n"))
(if (assoc-ref opts 'recursive) (if (assoc-ref opts 'recursive)
;; Recursive import ;; Recursive import
(map package->definition (map package->definition
(stream->list (cran-recursive-import package-name
(cran-recursive-import package-name (or (assoc-ref opts 'repo) 'cran)))
(or (assoc-ref opts 'repo) 'cran))))
;; Single import ;; Single import
(let ((sexp (cran->guix-package package-name (let ((sexp (cran->guix-package package-name
(or (assoc-ref opts 'repo) 'cran)))) (or (assoc-ref opts 'repo) 'cran))))

View File

@ -28,7 +28,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-crate)) #:export (guix-import-crate))
@ -101,8 +100,7 @@ Import and convert the crate.io package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (crate-recursive-import name))
(crate-recursive-import name)))
(let ((sexp (crate->guix-package name version))) (let ((sexp (crate->guix-package name version)))
(unless sexp (unless sexp
(leave (G_ "failed to download meta-data for package '~a'~%") (leave (G_ "failed to download meta-data for package '~a'~%")

View File

@ -27,7 +27,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-elpa)) #:export (guix-import-elpa))
@ -101,9 +100,8 @@ Import the latest package named PACKAGE-NAME from an ELPA repository.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (elpa-recursive-import package-name
(elpa-recursive-import package-name (or (assoc-ref opts 'repo) 'gnu)))
(or (assoc-ref opts 'repo) 'gnu))))
(let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo)))) (let ((sexp (elpa->guix-package package-name (assoc-ref opts 'repo))))
(unless sexp (unless sexp
(leave (G_ "failed to download package '~a'~%") package-name)) (leave (G_ "failed to download package '~a'~%") package-name))

View File

@ -26,7 +26,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-gem)) #:export (guix-import-gem))
@ -95,8 +94,7 @@ Import and convert the RubyGems package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (gem-recursive-import package-name 'rubygems))
(gem-recursive-import package-name 'rubygems)))
(let ((sexp (gem->guix-package package-name))) (let ((sexp (gem->guix-package package-name)))
(unless sexp (unless sexp
(leave (G_ "failed to download meta-data for package '~a'~%") (leave (G_ "failed to download meta-data for package '~a'~%")

View File

@ -27,7 +27,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-hackage)) #:export (guix-import-hackage))
@ -130,8 +129,7 @@ version.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (apply hackage-recursive-import arguments))
(apply hackage-recursive-import arguments)))
;; Single import ;; Single import
(apply hackage->guix-package arguments)))) (apply hackage->guix-package arguments))))
(unless sexp (error-fn)) (unless sexp (error-fn))

View File

@ -25,7 +25,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-opam)) #:export (guix-import-opam))
@ -94,8 +93,7 @@ Import and convert the opam package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (opam-recursive-import package-name))
(opam-recursive-import package-name)))
;; Single import ;; Single import
(let ((sexp (opam->guix-package package-name))) (let ((sexp (opam->guix-package package-name)))
(unless sexp (unless sexp

View File

@ -26,7 +26,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-pypi)) #:export (guix-import-pypi))
@ -95,8 +94,7 @@ Import and convert the PyPI package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (pypi-recursive-import package-name))
(pypi-recursive-import package-name)))
;; Single import ;; Single import
(let ((sexp (pypi->guix-package package-name))) (let ((sexp (pypi->guix-package package-name)))
(unless sexp (unless sexp

View File

@ -27,7 +27,6 @@
#:use-module (srfi srfi-1) #:use-module (srfi srfi-1)
#:use-module (srfi srfi-11) #:use-module (srfi srfi-11)
#:use-module (srfi srfi-37) #:use-module (srfi srfi-37)
#:use-module (srfi srfi-41)
#:use-module (ice-9 match) #:use-module (ice-9 match)
#:use-module (ice-9 format) #:use-module (ice-9 format)
#:export (guix-import-stackage)) #:export (guix-import-stackage))
@ -110,8 +109,7 @@ Import and convert the LTS Stackage package for PACKAGE-NAME.\n"))
`(define-public ,(string->symbol name) `(define-public ,(string->symbol name)
,pkg)) ,pkg))
(_ #f)) (_ #f))
(stream->list (apply stackage-recursive-import arguments))
(apply stackage-recursive-import arguments)))
;; Single import ;; Single import
(apply stackage->guix-package arguments)))) (apply stackage->guix-package arguments))))
(unless sexp (error-fn)) (unless sexp (error-fn))

View File

@ -24,7 +24,6 @@
#:use-module (gcrypt hash) #:use-module (gcrypt hash)
#:use-module (guix tests) #:use-module (guix tests)
#:use-module ((guix build utils) #:select (delete-file-recursively)) #:use-module ((guix build utils) #:select (delete-file-recursively))
#:use-module (srfi srfi-41)
#:use-module (srfi srfi-64) #:use-module (srfi srfi-64)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -121,7 +120,7 @@
(values (open-input-string test-bundler-json) (values (open-input-string test-bundler-json)
(string-length test-bundler-json))) (string-length test-bundler-json)))
(_ (error "Unexpected URL: " url))))) (_ (error "Unexpected URL: " url)))))
(match (stream->list (gem-recursive-import "foo")) (match (gem-recursive-import "foo")
((('package ((('package
('name "ruby-bar") ('name "ruby-bar")
('version "1.0.0") ('version "1.0.0")

View File

@ -24,7 +24,6 @@
#:use-module (guix packages) #:use-module (guix packages)
#:use-module (guix build-system) #:use-module (guix build-system)
#:use-module (gnu packages) #:use-module (gnu packages)
#:use-module (srfi srfi-41)
#:use-module (srfi srfi-64) #:use-module (srfi srfi-64)
#:use-module (ice-9 match)) #:use-module (ice-9 match))
@ -49,20 +48,19 @@
(package (package
(name "foo") (name "foo")
(inputs `(("bar" ,bar))))) (inputs `(("bar" ,bar)))))
(stream->list (recursive-import "foo" 'repo
(recursive-import "foo" 'repo #:repo->guix-package
#:repo->guix-package (match-lambda*
(match-lambda* (("foo" 'repo)
(("foo" 'repo) (values '(package
(values '(package (name "foo")
(name "foo") (inputs `(("bar" ,bar))))
(inputs `(("bar" ,bar)))) '("bar")))
'("bar"))) (("bar" 'repo)
(("bar" 'repo) (values '(package
(values '(package (name "bar"))
(name "bar")) '())))
'()))) #:guix-name identity))
#:guix-name identity)))
(test-assert "alist->package with simple source" (test-assert "alist->package with simple source"
(let* ((meta '(("name" . "hello") (let* ((meta '(("name" . "hello")