import: print: Correctly handle URI lists.
* guix/import/print.scm (package->code)[factorized-uri-code]: New procedure. [source->code]: Use it, and factorize URI when it's a list. * tests/print.scm (pkg-with-origin-input): Check origin URI to a list.
This commit is contained in:
parent
04d929570a
commit
b3240ae846
@ -25,6 +25,7 @@
|
|||||||
#:use-module (guix build-system)
|
#:use-module (guix build-system)
|
||||||
#:use-module (gnu packages)
|
#:use-module (gnu packages)
|
||||||
#:use-module (srfi srfi-1)
|
#:use-module (srfi srfi-1)
|
||||||
|
#:use-module (srfi srfi-26)
|
||||||
#:use-module (guix import utils)
|
#:use-module (guix import utils)
|
||||||
#:use-module (ice-9 control)
|
#:use-module (ice-9 control)
|
||||||
#:use-module (ice-9 match)
|
#:use-module (ice-9 match)
|
||||||
@ -72,6 +73,11 @@ when evaluated."
|
|||||||
(file-type (quote ,(search-path-specification-file-type spec)))
|
(file-type (quote ,(search-path-specification-file-type spec)))
|
||||||
(file-pattern ,(search-path-specification-file-pattern spec))))
|
(file-pattern ,(search-path-specification-file-pattern spec))))
|
||||||
|
|
||||||
|
(define (factorized-uri-code uri version)
|
||||||
|
(match (factorize-uri uri version)
|
||||||
|
((? string? uri) uri)
|
||||||
|
((factorized ...) `(string-append ,@factorized))))
|
||||||
|
|
||||||
(define (source->code source version)
|
(define (source->code source version)
|
||||||
(let ((uri (origin-uri source))
|
(let ((uri (origin-uri source))
|
||||||
(method (origin-method source))
|
(method (origin-method source))
|
||||||
@ -90,9 +96,12 @@ when evaluated."
|
|||||||
(guix svn-download)))
|
(guix svn-download)))
|
||||||
(procedure-name method)))
|
(procedure-name method)))
|
||||||
(uri ,(if version
|
(uri ,(if version
|
||||||
`(string-append ,@(match (factorize-uri uri version)
|
(match uri
|
||||||
((? string? uri) (list uri))
|
((? string? uri)
|
||||||
(factorized factorized)))
|
(factorized-uri-code uri version))
|
||||||
|
((lst ...)
|
||||||
|
`(list
|
||||||
|
,@(map (cut factorized-uri-code <> version) uri))))
|
||||||
uri))
|
uri))
|
||||||
,(if (equal? (content-hash-algorithm hash) 'sha256)
|
,(if (equal? (content-hash-algorithm hash) 'sha256)
|
||||||
`(sha256 (base32 ,(bytevector->nix-base32-string
|
`(sha256 (base32 ,(bytevector->nix-base32-string
|
||||||
|
@ -73,8 +73,10 @@
|
|||||||
(version "1.2.3")
|
(version "1.2.3")
|
||||||
(source (origin
|
(source (origin
|
||||||
(method url-fetch)
|
(method url-fetch)
|
||||||
(uri (string-append "file:///tmp/test-"
|
(uri (list (string-append "file:///tmp/test-"
|
||||||
version ".tar.gz"))
|
version ".tar.gz")
|
||||||
|
(string-append "http://example.org/test-"
|
||||||
|
version ".tar.gz")))
|
||||||
(sha256
|
(sha256
|
||||||
(base32
|
(base32
|
||||||
"070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
|
"070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user