summaryrefslogtreecommitdiff
path: root/guix/import/print.scm
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2021-10-29 22:23:21 +0200
committerLudovic Courtès <ludo@gnu.org>2021-11-11 00:14:31 +0100
commitb3240ae846cb1ace2322a68eca3497f11d0be6f1 (patch)
treeda0a521a3fdd2896214cb3010949777f54622d72 /guix/import/print.scm
parent04d929570ad816793d7e0024a11314124ce87f98 (diff)
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.
Diffstat (limited to 'guix/import/print.scm')
-rw-r--r--guix/import/print.scm15
1 files changed, 12 insertions, 3 deletions
diff --git a/guix/import/print.scm b/guix/import/print.scm
index 8acf5d52f6..4e65d18bc3 100644
--- a/guix/import/print.scm
+++ b/guix/import/print.scm
@@ -25,6 +25,7 @@
#:use-module (guix build-system)
#:use-module (gnu packages)
#:use-module (srfi srfi-1)
+ #:use-module (srfi srfi-26)
#:use-module (guix import utils)
#:use-module (ice-9 control)
#:use-module (ice-9 match)
@@ -72,6 +73,11 @@ when evaluated."
(file-type (quote ,(search-path-specification-file-type 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)
(let ((uri (origin-uri source))
(method (origin-method source))
@@ -90,9 +96,12 @@ when evaluated."
(guix svn-download)))
(procedure-name method)))
(uri ,(if version
- `(string-append ,@(match (factorize-uri uri version)
- ((? string? uri) (list uri))
- (factorized factorized)))
+ (match uri
+ ((? string? uri)
+ (factorized-uri-code uri version))
+ ((lst ...)
+ `(list
+ ,@(map (cut factorized-uri-code <> version) uri))))
uri))
,(if (equal? (content-hash-algorithm hash) 'sha256)
`(sha256 (base32 ,(bytevector->nix-base32-string