all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: "Ludovic Courtès" <ludo@gnu.org>
To: 51493@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#51493] [PATCH 4/5] import: print: Correctly handle URI lists.
Date: Fri, 29 Oct 2021 23:35:38 +0200	[thread overview]
Message-ID: <20211029213539.30291-4-ludo@gnu.org> (raw)
In-Reply-To: <20211029213539.30291-1-ludo@gnu.org>

* 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.
---
 guix/import/print.scm | 15 ++++++++++++---
 tests/print.scm       |  6 ++++--
 2 files changed, 16 insertions(+), 5 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 @@ (define-module (guix import print)
   #: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 @@ (define (search-path-specification->code spec)
       (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 @@ (define (source->code source version)
                              (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
diff --git a/tests/print.scm b/tests/print.scm
index ad19f4573a..7f4c8ccdd1 100644
--- a/tests/print.scm
+++ b/tests/print.scm
@@ -73,8 +73,10 @@ (define-with-source pkg-with-origin-input pkg-with-origin-input-source
     (version "1.2.3")
     (source (origin
               (method url-fetch)
-              (uri (string-append "file:///tmp/test-"
-                                  version ".tar.gz"))
+              (uri (list (string-append "file:///tmp/test-"
+                                        version ".tar.gz")
+                         (string-append "http://example.org/test-"
+                                        version ".tar.gz")))
               (sha256
                (base32
                 "070pwb7brdcn1mfvplkd56vjc7lbz4iznzkqvfsakvgbv68k71ah"))))
-- 
2.33.0





  parent reply	other threads:[~2021-10-29 21:52 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-29 21:29 [bug#51493] [PATCH 0/5] Improvements to the pypi, cran, and "print" importers Ludovic Courtès
2021-10-29 21:35 ` [bug#51493] [PATCH 1/5] import: pypi: Allow imports of a specific version Ludovic Courtès
2021-10-29 21:35   ` [bug#51493] [PATCH 2/5] import: cran: " Ludovic Courtès
2021-10-29 21:35   ` [bug#51493] [PATCH 3/5] import: print: Properly render packages with origins as inputs Ludovic Courtès
2021-10-29 21:35   ` Ludovic Courtès [this message]
2021-10-29 21:35   ` [bug#51493] [PATCH 5/5] import: print: Handle patches that are origins Ludovic Courtès
2021-11-12 10:18   ` [bug#51493] [PATCH 1/5] import: pypi: Allow imports of a specific version zimoun
2021-11-12 10:49     ` Tobias Geerinckx-Rice via Guix-patches via
2021-11-12 11:10       ` zimoun
2021-11-10 23:26 ` bug#51493: [PATCH 0/5] Improvements to the pypi, cran, and "print" importers Ludovic Courtès

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211029213539.30291-4-ludo@gnu.org \
    --to=ludo@gnu.org \
    --cc=51493@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.