[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 2/2] guix package: add a "show" option.
From: |
Cyril Roelandt |
Subject: |
[PATCH v2 2/2] guix package: add a "show" option. |
Date: |
Thu, 17 Jul 2014 02:54:10 +0200 |
* doc/guix.texi: Update the documentation.
* guix/scripts/package.scm: Add a "show" option.
* tests/guix-package.sh: Add a test for the "show" option.
---
doc/guix.texi | 23 +++++++++++++++++++++++
guix/scripts/package.scm | 15 +++++++++++++++
tests/guix-package.sh | 3 +++
3 files changed, 41 insertions(+)
diff --git a/doc/guix.texi b/doc/guix.texi
index 7ea40e5..38aade5 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -839,6 +839,29 @@ name: gmp
@dots{}
@end example
address@hidden address@hidden
+Show details about a given package in @code{recutils} format (@pxref{Top, GNU
+recutils databases,, recutils, GNU recutils manual}).
+
address@hidden
+$ guix package --show=python | recsel -p name,version
+name: python
+version: 2.7.6
+
+name: python
+version: 3.3.5
address@hidden example
+
+You may also specify the full name of a package to only get details about a
+specific version of it:
address@hidden
+$ guix package --show=python-3.3.5 | recsel -p name,version
+name: python
+version: 3.3.5
address@hidden example
+
+
+
@item address@hidden
@itemx -I address@hidden
List the currently installed packages in the specified profile, with the
diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm
index 1c3209f..0d17414 100644
--- a/guix/scripts/package.scm
+++ b/guix/scripts/package.scm
@@ -517,6 +517,8 @@ Install, remove, or upgrade PACKAGES in a single
transaction.\n"))
(display (_ "
-A, --list-available[=REGEXP]
list available packages matching REGEXP"))
+ (display (_ "
+ --show=PACKAGE show details about PACKAGE"))
(newline)
(show-build-options-help)
(newline)
@@ -615,6 +617,11 @@ Install, remove, or upgrade PACKAGES in a single
transaction.\n"))
(values (cons `(query list-available ,(or arg ""))
result)
#f)))
+ (option '("show") #t #t
+ (lambda (opt name arg result arg-handler)
+ (values (cons `(query show ,arg)
+ result)
+ #f)))
%standard-build-options))
@@ -1042,6 +1049,14 @@ more information.~%"))
(find-packages-by-description regexp)))
#t))
+ (('show requested-name)
+ (let-values (((name version)
+ (package-name->name+version requested-name)))
+ (leave-on-EPIPE
+ (for-each (cute package->recutils <> (current-output-port))
+ (find-packages-by-name name version)))
+ #t))
+
(('search-paths)
(let* ((manifest (profile-manifest profile))
(entries (manifest-entries manifest))
diff --git a/tests/guix-package.sh b/tests/guix-package.sh
index 4d75955..d388514 100644
--- a/tests/guix-package.sh
+++ b/tests/guix-package.sh
@@ -176,6 +176,9 @@ then false; else true; fi
# Check whether `--list-available' returns something sensible.
guix package -p "$profile" -A 'gui.*e' | grep guile
+# Check whether `--show' returns something sensible.
+guix package -p "$profile" --show=guile | grep "^Package: guile"
+
# There's no generation older than 12 months, so the following command should
# have no effect.
generation="`readlink_base "$profile"`"
--
1.8.4.rc3