package: Improve output appearance when listing packages.

* guix/scripts/package.scm (process-query): Use pretty-print-table when
listing installed and available packages.

Modified-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
Signed-off-by: Maxim Cournoyer <maxim.cournoyer@gmail.com>
This commit is contained in:
Steve Sprang 2018-01-09 14:10:04 -08:00 committed by Maxim Cournoyer
parent b73b9aae0d
commit 481d660527
No known key found for this signature in database
GPG key ID: 1260E46482E63562

View file

@ -9,6 +9,7 @@
;;; Copyright © 2019 Tobias Geerinckx-Rice <me@tobias.gr>
;;; Copyright © 2020 Ricardo Wurmus <rekado@elephly.net>
;;; Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
;;; Copyright © 2018 Steve Sprang <scs@stevesprang.com>
;;;
;;; This file is part of GNU Guix.
;;;
@ -831,15 +832,14 @@ (define (diff-profiles profile numbers)
(map profile-manifest profiles)))
(installed (manifest-entries manifest)))
(leave-on-EPIPE
(for-each (match-lambda
(($ <manifest-entry> name version output path _)
(when (or (not regexp)
(regexp-exec regexp name))
(format #t "~a\t~a\t~a\t~a~%"
name (or version "?") output path))))
;; Show most recently installed packages last.
(reverse installed))))
(let ((rows (filter-map
(match-lambda
(($ <manifest-entry> name version output path _)
(and (regexp-exec regexp name)
(list name (or version "?") output path))))
installed)))
;; Show most recently installed packages last.
(pretty-print-table (reverse rows)))))
#t)
(('list-available regexp)
@ -862,16 +862,15 @@ (define (diff-profiles profile numbers)
result))
'())))
(leave-on-EPIPE
(for-each (match-lambda
((name version outputs location)
(format #t "~a\t~a\t~a\t~a~%"
name version
(string-join outputs ",")
(location->string location))))
(sort available
(match-lambda*
(((name1 . _) (name2 . _))
(string<? name1 name2))))))
(let ((rows (map (match-lambda
((name version outputs location)
(list name version (string-join outputs ",")
(location->string location))))
(sort available
(match-lambda*
(((name1 . _) (name2 . _))
(string<? name1 name2)))))))
(pretty-print-table rows)))
#t))
(('list-profiles _)