guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

02/03: import: opam: Report groups in syntax tree.


From: guix-commits
Subject: 02/03: import: opam: Report groups in syntax tree.
Date: Thu, 1 Oct 2020 18:51:14 -0400 (EDT)

roptat pushed a commit to branch master
in repository guix.

commit a6816618fc1e48417a64c5f8ca67e3d64ebc5441
Author: Julien Lepiller <julien@lepiller.eu>
AuthorDate: Fri Oct 2 00:27:24 2020 +0200

    import: opam: Report groups in syntax tree.
    
    * guix/import/opam.scm (group-pat): Report in syntax tree.
    (dependency->input, dependency->native-input, dependency->name):
    consider the case of a group.
---
 guix/import/opam.scm | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/guix/import/opam.scm b/guix/import/opam.scm
index 7327ab6..6d9eb0a 100644
--- a/guix/import/opam.scm
+++ b/guix/import/opam.scm
@@ -75,8 +75,8 @@
       group-pat
       conditional-value
       ground-value))
-(define-peg-pattern group-pat body
-                    (and ground-value (* SP) (ignore "&") (* SP)
+(define-peg-pattern group-pat all
+                    (and (or conditional-value ground-value) (* SP) (ignore 
"&") (* SP)
                          (or group-pat conditional-value ground-value)))
 (define-peg-pattern ground-value body (and (or multiline-string string-pat 
choice-pat list-pat var) (* SP)))
 (define-peg-pattern conditional-value all (and ground-value (* SP) condition))
@@ -196,6 +196,7 @@ path to the repository."
     (('string-pat str) str)
     ;; Arbitrary select the first dependency
     (('choice-pat choice ...) (dependency->input (car choice)))
+    (('group-pat val ...) (map dependency->input val))
     (('conditional-value val condition)
      (if (native? condition) "" (dependency->input val)))))
 
@@ -203,7 +204,8 @@ path to the repository."
   (match dependency
     (('string-pat str) "")
     ;; Arbitrary select the first dependency
-    (('choice-pat choice ...) (dependency->input (car choice)))
+    (('choice-pat choice ...) (dependency->native-input (car choice)))
+    (('group-pat val ...) (map dependency->native-input val))
     (('conditional-value val condition)
      (if (native? condition) (dependency->input val) ""))))
 
@@ -211,7 +213,8 @@ path to the repository."
   (match dependency
     (('string-pat str) str)
     ;; Arbitrary select the first dependency
-    (('choice-pat choice ...) (dependency->input (car choice)))
+    (('choice-pat choice ...) (dependency->name (car choice)))
+    (('group-pat val ...) (map dependency->name val))
     (('conditional-value val condition)
      (dependency->name val))))
 
@@ -263,7 +266,7 @@ REPOSITORY is #f, from the official OPAM repository.  
Return a 'package' sexp
 or #f on failure."
   (and-let* ((opam-file (opam-fetch name repository))
              (version (assoc-ref opam-file "version"))
-             (opam-content (assoc-ref opam-file "metadata"))
+             (opam-content (pk (assoc-ref opam-file "metadata")))
              (url-dict (metadata-ref opam-content "url"))
              (source-url (or (metadata-ref url-dict "src")
                              (metadata-ref url-dict "archive")))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]