guix-commits
[Top][All Lists]
Advanced

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

280/285: pack: Save provenance information when using '--manifest'.


From: guix-commits
Subject: 280/285: pack: Save provenance information when using '--manifest'.
Date: Sun, 29 Dec 2019 20:44:47 -0500 (EST)

kkebreau pushed a commit to branch wip-gnome3.34
in repository guix.

commit 4c0d46f6df9d0dcc053cca9ac3f58982d7592a84
Author: Ludovic Courtès <address@hidden>
Date:   Sun Dec 29 16:51:15 2019 +0100

    pack: Save provenance information when using '--manifest'.
    
    * guix/scripts/pack.scm (guix-pack)[manifest-from-args]: Remove
    'provenance', and add 'with-provenance' procedure.  Wrap 'cond' form in
    'with-provenance'.
---
 guix/scripts/pack.scm | 54 ++++++++++++++++++++++++---------------------------
 1 file changed, 25 insertions(+), 29 deletions(-)

diff --git a/guix/scripts/pack.scm b/guix/scripts/pack.scm
index 536cc17..b84e37c 100644
--- a/guix/scripts/pack.scm
+++ b/guix/scripts/pack.scm
@@ -974,36 +974,32 @@ Create a bundle of PACKAGE.\n"))
                                         (('manifest . file) file)
                                         (_ #f))
                                       opts)))
-      (define properties
+      (define with-provenance
         (if (assoc-ref opts 'save-provenance?)
-            (lambda (package)
-              (match (package-provenance package)
-                (#f
-                 (warning (G_ "could not determine provenance of package ~a~%")
-                          (package-full-name package))
-                 '())
-                (sexp
-                 `((provenance . ,sexp)))))
-            (const '())))
-
-      (cond
-       ((and (not (null? manifests)) (not (null? packages)))
-        (leave (G_ "both a manifest and a package list were given~%")))
-       ((not (null? manifests))
-        (concatenate-manifests
-         (map (lambda (file)
-                (let ((user-module (make-user-module
-                                    '((guix profiles) (gnu)))))
-                  (load* file user-module)))
-              manifests)))
-       (else
-        (manifest
-         (map (match-lambda
-                ((package output)
-                 (package->manifest-entry package output
-                                          #:properties
-                                          (properties package))))
-              packages))))))
+            (lambda (manifest)
+              (map-manifest-entries
+               (lambda (entry)
+                 (let ((entry (manifest-entry-with-provenance entry)))
+                   (unless (assq 'provenance (manifest-entry-properties entry))
+                     (warning (G_ "could not determine provenance of package 
~a~%")
+                              (manifest-entry-name entry)))
+                   entry))
+               manifest))
+            identity))
+
+      (with-provenance
+       (cond
+        ((and (not (null? manifests)) (not (null? packages)))
+         (leave (G_ "both a manifest and a package list were given~%")))
+        ((not (null? manifests))
+         (concatenate-manifests
+          (map (lambda (file)
+                 (let ((user-module (make-user-module
+                                     '((guix profiles) (gnu)))))
+                   (load* file user-module)))
+               manifests)))
+        (else
+         (packages->manifest packages))))))
 
   (with-error-handling
     (with-store store



reply via email to

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