GNU bug report logs - #41183
[PATCH 0/1] guix package, show: Support multiple queries.

Previous Next

Package: guix-patches;

Reported by: zimoun <zimon.toutoune <at> gmail.com>

Date: Sun, 10 May 2020 23:39:02 UTC

Severity: normal

Tags: patch

Done: Ludovic Courtès <ludo <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 41183 in the body.
You can then email your comments to 41183 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to guix-patches <at> gnu.org:
bug#41183; Package guix-patches. (Sun, 10 May 2020 23:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to zimoun <zimon.toutoune <at> gmail.com>:
New bug report received and forwarded. Copy sent to guix-patches <at> gnu.org. (Sun, 10 May 2020 23:39:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: guix-patches <at> gnu.org
Cc: zimoun <zimon.toutoune <at> gmail.com>
Subject: [PATCH 0/1] guix package, show: Support multiple queries.
Date: Mon, 11 May 2020 01:37:47 +0200
Dear,

This patch adds the feature:

  guix package --show=emacs --show=hello

and therefore, it allows to pipe:

 guix graph emacs --path libffi | xargs guix show


Note that:

 1. "guix package" processes from right to left.
 2. "guix show" processes from left to right.

It is how "guix packages" is implemented.  However, it appears more natural to
display in order; that's why "guix show" reverses the order.

 3. Because dealing with multiple different queries does not seems "keep it
 simple", "guix package" starts with the last query (the most of left) and
 then processes all the queries corresponding to this one.


For example,

a) guix package --show=emacs --search=hello --show=libffi
will show the packages 'emacs' and 'libffi', skipping 'search'.

b) guix package --show=emacs  --show=libffi --search=hello
will search the package 'hello', skipping 'show'.

It is already how '--search' works and has been extended to '--show'.  Does it
need to be documented in the manua?



All the best,
simon




zimoun (1):
  guix package, show: Support multiple queries.

 guix/scripts/package.scm | 7 ++++++-
 guix/scripts/show.scm    | 2 +-
 2 files changed, 7 insertions(+), 2 deletions(-)

-- 
2.26.1





Information forwarded to guix-patches <at> gnu.org:
bug#41183; Package guix-patches. (Sun, 10 May 2020 23:41:01 GMT) Full text and rfc822 format available.

Message #8 received at 41183 <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: 41183 <at> debbugs.gnu.org
Cc: zimoun <zimon.toutoune <at> gmail.com>
Subject: [PATCH] guix package, show: Support multiple queries.
Date: Mon, 11 May 2020 01:40:44 +0200
* guix/scripts/package.scm (process-query): Show multiple queries.
* guix/scripts/show.scm (guix-show): Reverse to display in order.
---
 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 dce9256bf5..a69efa365e 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -8,6 +8,7 @@
 ;;; Copyright © 2016 Chris Marusich <cmmarusich <at> gmail.com>
 ;;; Copyright © 2019 Tobias Geerinckx-Rice <me <at> tobias.gr>
 ;;; Copyright © 2020 Ricardo Wurmus <rekado <at> elephly.net>
+;;; Copyright © 2020 Simon Tournier <zimon.toutoune <at> gmail.com>
 ;;;
 ;;; 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 ef64b5755b..a2b0030a63 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)))
-- 
2.26.1





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Mon, 11 May 2020 20:26:02 GMT) Full text and rfc822 format available.

Notification sent to zimoun <zimon.toutoune <at> gmail.com>:
bug acknowledged by developer. (Mon, 11 May 2020 20:26:02 GMT) Full text and rfc822 format available.

Message #13 received at 41183-done <at> debbugs.gnu.org (full text, mbox):

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 41183-done <at> debbugs.gnu.org
Subject: Re: [bug#41183] [PATCH] guix package, show: Support multiple queries.
Date: Mon, 11 May 2020 22:25:45 +0200
Hello,

zimoun <zimon.toutoune <at> gmail.com> skribis:

> * guix/scripts/package.scm (process-query): Show multiple queries.
> * guix/scripts/show.scm (guix-show): Reverse to display in order.

Yay, applied!

> Note that:
>
>  1. "guix package" processes from right to left.
>  2. "guix show" processes from left to right.
>
> It is how "guix packages" is implemented.  However, it appears more natural to
> display in order; that's why "guix show" reverses the order.
>
>  3. Because dealing with multiple different queries does not seems "keep it
>  simple", "guix package" starts with the last query (the most of left) and
>  then processes all the queries corresponding to this one.
>
>
> For example,
>
> a) guix package --show=emacs --search=hello --show=libffi
> will show the packages 'emacs' and 'libffi', skipping 'search'.
>
> b) guix package --show=emacs  --show=libffi --search=hello
> will search the package 'hello', skipping 'show'.
>
> It is already how '--search' works and has been extended to '--show'.  Does it
> need to be documented in the manua?

Weirdness.  I think we should improve all that rather than document it,
addressing also some of the issues raised in
<https://issues.guix.gnu.org/issue/40549>.

Thanks,
Ludo’.




Information forwarded to guix-patches <at> gnu.org:
bug#41183; Package guix-patches. (Mon, 11 May 2020 21:49:02 GMT) Full text and rfc822 format available.

Message #16 received at 41183-done <at> debbugs.gnu.org (full text, mbox):

From: zimoun <zimon.toutoune <at> gmail.com>
To: Ludovic Courtès <ludo <at> gnu.org>
Cc: 41183-done <at> debbugs.gnu.org
Subject: Re: [bug#41183] [PATCH] guix package, show: Support multiple queries.
Date: Mon, 11 May 2020 23:48:28 +0200
Hi Ludo,

On Mon, 11 May 2020 at 22:25, Ludovic Courtès <ludo <at> gnu.org> wrote:

> Yay, applied!

Thank you!


> > It is already how '--search' works and has been extended to '--show'.  Does it
> > need to be documented in the manua?
>
> Weirdness.  I think we should improve all that rather than document it,
> addressing also some of the issues raised in
> <https://issues.guix.gnu.org/issue/40549>.

Expected weirdness. :-)
It is because of the use of 'assoc-ref' on 'opts' which returns the
first match, so the first in the alist, so the last in the
command-line.  This behaviour is a feature. ;-)

Well, thanks for the reminder on #40549.  Now I have a better
understanding (e.g., query vs action), I am going to revisit it.


Cheers,
simon




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 09 Jun 2020 11:24:05 GMT) Full text and rfc822 format available.

This bug report was last modified 5 years and 11 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.