GNU bug report logs - #37462
[PATCH] guix package: Add 'guix show' alias.

Previous Next

Package: guix-patches;

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

Date: Thu, 19 Sep 2019 17:25:01 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 37462 in the body.
You can then email your comments to 37462 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#37462; Package guix-patches. (Thu, 19 Sep 2019 17:25:01 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. (Thu, 19 Sep 2019 17:25:01 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] guix package: Add 'guix show' alias.
Date: Thu, 19 Sep 2019 19:24:42 +0200
* guix/scripts/show.scm: New file.
* Makefile.am (MODULES): Add it.
* po/guix/POTFILES.in: Add it.
* tests/guix-package-aliases.sh: Add test.
* doc/guix.texi (Invoking guix package): Document it and use it in a example.
---
 Makefile.am                   |  1 +
 doc/guix.texi                 |  8 +++--
 guix/scripts/show.scm         | 67 +++++++++++++++++++++++++++++++++++
 po/guix/POTFILES.in           |  1 +
 tests/guix-package-aliases.sh |  4 +++
 5 files changed, 78 insertions(+), 3 deletions(-)
 create mode 100644 guix/scripts/show.scm

diff --git a/Makefile.am b/Makefile.am
index 7e3b5c1070..e33366f48b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -241,6 +241,7 @@ MODULES =					\
   guix/scripts/remove.scm			\
   guix/scripts/upgrade.scm			\
   guix/scripts/search.scm			\
+  guix/scripts/show.scm				\
   guix/scripts/gc.scm				\
   guix/scripts/hash.scm				\
   guix/scripts/pack.scm				\
diff --git a/doc/guix.texi b/doc/guix.texi
index 55935b3794..03028de97b 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -2657,7 +2657,9 @@ For your convenience, we also provide the following aliases:
 @item
 @command{guix remove} is an alias for @command{guix package -r},
 @item
-and @command{guix upgrade} is an alias for @command{guix package -u}.
+@command{guix upgrade} is an alias for @command{guix package -u},
+@item
+and @command{guix show} is an alias for @command{guix package --show=}.
 @end itemize
 
 These aliases are less expressive than @command{guix package} and provide
@@ -3020,9 +3022,9 @@ version: 3.3.5
 @end example
 
 You may also specify the full name of a package to only get details about a
-specific version of it:
+specific version of it (this time using the @command{guix show} alias):
 @example
-$ guix package --show=python@@3.4 | recsel -p name,version
+$ guix show python@@3.4 | recsel -p name,version
 name: python
 version: 3.4.3
 @end example
diff --git a/guix/scripts/show.scm b/guix/scripts/show.scm
new file mode 100644
index 0000000000..94f0559358
--- /dev/null
+++ b/guix/scripts/show.scm
@@ -0,0 +1,67 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2019 Simon Tournier <zimon.toutoune <at> gmail.com>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (guix scripts show)
+  #:use-module (guix ui)
+  #:use-module (guix scripts package)
+  #:use-module (guix scripts)
+  #:use-module (srfi srfi-1)
+  #:use-module (srfi srfi-26)
+  #:use-module (srfi srfi-37)
+  #:export (guix-show))
+
+(define (show-help)
+  (display (G_ "Usage: guix show [OPTION] PACKAGE...
+Show details about PACKAGE."))
+  (display (G_"
+This is an alias for 'guix package --show='.\n"))
+  (newline)
+  (display (G_ "
+  -h, --help             display this help and exit"))
+  (display (G_ "
+  -V, --version          display version information and exit"))
+  (newline)
+  (show-bug-report-information))
+
+(define %options
+  ;; Specification of the command-line options.
+  (list (option '(#\h "help") #f #f
+                (lambda args
+                  (show-help)
+                  (exit 0)))
+        (option '(#\V "version") #f #f
+                (lambda args
+                  (show-version-and-exit "guix show")))))
+
+(define (guix-show . args)
+  (define (handle-argument arg result)
+    ;; Treat all non-option arguments as regexps.
+    (cons `(query show ,arg)
+          result))
+
+  (define opts
+    (args-fold* args %options
+                (lambda (opt name arg . rest)
+                  (leave (G_ "~A: unrecognized option~%") name))
+                handle-argument
+                '()))
+
+  (unless (assoc-ref opts 'query)
+    (leave (G_ "missing arguments: no package to show~%")))
+
+  (guix-package* opts))
diff --git a/po/guix/POTFILES.in b/po/guix/POTFILES.in
index 8b556ac0ec..f629034d61 100644
--- a/po/guix/POTFILES.in
+++ b/po/guix/POTFILES.in
@@ -47,6 +47,7 @@ guix/scripts/install.scm
 guix/scripts/remove.scm
 guix/scripts/upgrade.scm
 guix/scripts/search.scm
+guix/scripts/show.scm
 guix/scripts/gc.scm
 guix/scripts/hash.scm
 guix/scripts/import.scm
diff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.sh
index 5c68664093..520f3309de 100644
--- a/tests/guix-package-aliases.sh
+++ b/tests/guix-package-aliases.sh
@@ -58,3 +58,7 @@ if guix remove -i guile-bootstrap -p "$profile" --bootstrap
 then false; else true; fi
 
 guix search '\<board\>' game | grep '^name: gnubg'
+
+guix show --version
+guix show guile
+guix show python <at> 3 | recsel -p name,version
-- 
2.21.0





Reply sent to Ludovic Courtès <ludo <at> gnu.org>:
You have taken responsibility. (Fri, 20 Sep 2019 20:58:02 GMT) Full text and rfc822 format available.

Notification sent to zimoun <zimon.toutoune <at> gmail.com>:
bug acknowledged by developer. (Fri, 20 Sep 2019 20:58:04 GMT) Full text and rfc822 format available.

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

From: Ludovic Courtès <ludo <at> gnu.org>
To: zimoun <zimon.toutoune <at> gmail.com>
Cc: 37462-done <at> debbugs.gnu.org
Subject: Re: [bug#37462] [PATCH] guix package: Add 'guix show' alias.
Date: Fri, 20 Sep 2019 22:57:40 +0200
Hello,

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

> * guix/scripts/show.scm: New file.
> * Makefile.am (MODULES): Add it.
> * po/guix/POTFILES.in: Add it.
> * tests/guix-package-aliases.sh: Add test.
> * doc/guix.texi (Invoking guix package): Document it and use it in a example.

Applied, woohoo!

> +guix show python <at> 3 | recsel -p name,version

I changed recsel to grep because we don’t generally assume that recsel
is available in the build environment.

Thanks,
Ludo’.




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

This bug report was last modified 4 years and 189 days ago.

Previous Next


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