guix-commits
[Top][All Lists]
Advanced

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

01/07: guix package, show: Support multiple queries.


From: guix-commits
Subject: 01/07: guix package, show: Support multiple queries.
Date: Mon, 11 May 2020 17:31:53 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit baf1ce82b1fa4ccdfe79d2d3d2695c063ead321c
Author: zimoun <address@hidden>
AuthorDate: Mon May 11 01:40:44 2020 +0200

    guix package, show: Support multiple queries.
    
    * guix/scripts/package.scm (process-query): Show multiple queries.
    * guix/scripts/show.scm (guix-show): Reverse to display in order.
    
    Signed-off-by: Ludovic Courtès <address@hidden>
---
 guix/scripts/package.scm | 33 +++++++++++++++++++++------------
 guix/scripts/show.scm    |  2 +-
 2 files changed, 22 insertions(+), 13 deletions(-)

diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index dce9256..a69efa3 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Chris Marusich <address@hidden>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <address@hidden>
 ;;; Copyright © 2020 Ricardo Wurmus <address@hidden>
+;;; Copyright © 2020 Simon Tournier <address@hidden>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -787,18 +788,26 @@ processed, #f otherwise."
           (display-search-results matches (current-output-port)))
          #t))
 
-      (('show requested-name)
-       (let-values (((name version)
-                     (package-name->name+version requested-name)))
-         (match (remove package-superseded
-                        (find-packages-by-name name version))
-           (()
-            (leave (G_ "~a~@[@~a~]: package not found~%") name version))
-           (packages
-            (leave-on-EPIPE
-             (for-each (cute package->recutils <> (current-output-port))
-                       packages))))
-         #t))
+      (('show _)
+       (let ((requested-names
+              (filter-map (match-lambda
+                            (('query 'show requested-name) requested-name)
+                            (_                            #f))
+                          opts)))
+         (for-each
+          (lambda (requested-name)
+            (let-values (((name version)
+                          (package-name->name+version requested-name)))
+              (match (remove package-superseded
+                             (find-packages-by-name name version))
+                (()
+                 (leave (G_ "~a~@[@~a~]: package not found~%") name version))
+                (packages
+                 (leave-on-EPIPE
+                  (for-each (cute package->recutils <> (current-output-port))
+                            packages))))))
+          requested-names))
+       #t)
 
       (('search-paths kind)
        (let* ((manifests (map profile-manifest profiles))
diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm
index ef64b57..a2b0030 100644
--- a/guix/scripts/show.scm
+++ b/guix/scripts/show.scm
@@ -73,4 +73,4 @@ This is an alias for 'guix package --show='.\n"))
   (unless (assoc-ref opts 'query)
     (leave (G_ "missing arguments: no package to show~%")))
 
-  (guix-package* opts))
+  (guix-package* (reverse opts)))



reply via email to

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