[PATCH] guix package: Add 'guix show' alias.

DoneSubmitted by zimoun.
Details
2 participants
  • Ludovic Courtès
  • zimoun
Owner
unassigned
Severity
normal
Z
Z
zimoun wrote on 19 Sep 2019 19:24
(address . guix-patches@gnu.org)(name . zimoun)(address . zimon.toutoune@gmail.com)
20190919172442.18099-1-zimon.toutoune@gmail.com
* 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
Toggle diff (138 lines)diff --git a/Makefile.am b/Makefile.amindex 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.texiindex 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 examplediff --git a/guix/scripts/show.scm b/guix/scripts/show.scmnew file mode 100644index 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@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.inindex 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.scmdiff --git a/tests/guix-package-aliases.sh b/tests/guix-package-aliases.shindex 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@3 | recsel -p name,version-- 2.21.0
L
L
Ludovic Courtès wrote on 20 Sep 2019 22:57
(name . zimoun)(address . zimon.toutoune@gmail.com)(address . 37462-done@debbugs.gnu.org)
87y2yiofcr.fsf@gnu.org
Hello,
zimoun <zimon.toutoune@gmail.com> skribis:
Toggle quote (6 lines)> * 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!
Toggle quote (2 lines)> +guix show python@3 | recsel -p name,version
I changed recsel to grep because we don’t generally assume that recselis available in the build environment.
Thanks,Ludo’.
Closed
?
Your comment

This issue is archived.

To comment on this conversation send email to 37462@debbugs.gnu.org