From baf1ce82b1fa4ccdfe79d2d3d2695c063ead321c Mon Sep 17 00:00:00 2001 From: zimoun Date: Mon, 11 May 2020 01:40:44 +0200 Subject: guix package, show: Support multiple queries. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 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 --- guix/scripts/package.scm | 33 +++++++++++++++++++++------------ guix/scripts/show.scm | 2 +- 2 files changed, 22 insertions(+), 13 deletions(-) (limited to 'guix') 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 ;;; Copyright © 2019 Tobias Geerinckx-Rice ;;; Copyright © 2020 Ricardo Wurmus +;;; Copyright © 2020 Simon Tournier ;;; ;;; 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))) -- cgit v1.2.3