guix package: Support multiple profiles with '--list-installed'.
* guix/scripts/package.scm (process-query): List installed multiple profiles. * tests/guix-package-net.sh: Test it. Signed-off-by: Ludovic Courtès <ludo@gnu.org>master
parent
197c07a847
commit
881eaae1ab
|
@ -675,12 +675,13 @@ doesn't need it."
|
|||
(define (process-query opts)
|
||||
"Process any query specified by OPTS. Return #t when a query was actually
|
||||
processed, #f otherwise."
|
||||
(let* ((profiles (match (filter-map (match-lambda
|
||||
(('profile . p) p)
|
||||
(_ #f))
|
||||
opts)
|
||||
(() (list %current-profile))
|
||||
(lst (reverse lst))))
|
||||
(let* ((profiles (delete-duplicates
|
||||
(match (filter-map (match-lambda
|
||||
(('profile . p) p)
|
||||
(_ #f))
|
||||
opts)
|
||||
(() (list %current-profile))
|
||||
(lst (reverse lst)))))
|
||||
(profile (match profiles
|
||||
((head tail ...) head))))
|
||||
(match (assoc-ref opts 'query)
|
||||
|
@ -718,7 +719,8 @@ processed, #f otherwise."
|
|||
|
||||
(('list-installed regexp)
|
||||
(let* ((regexp (and regexp (make-regexp* regexp regexp/icase)))
|
||||
(manifest (profile-manifest profile))
|
||||
(manifest (concatenate-manifests
|
||||
(map profile-manifest profiles)))
|
||||
(installed (manifest-entries manifest)))
|
||||
(leave-on-EPIPE
|
||||
(for-each (match-lambda
|
||||
|
@ -729,8 +731,8 @@ processed, #f otherwise."
|
|||
name (or version "?") output path))))
|
||||
|
||||
;; Show most recently installed packages last.
|
||||
(reverse installed)))
|
||||
#t))
|
||||
(reverse installed))))
|
||||
#t)
|
||||
|
||||
(('list-available regexp)
|
||||
(let* ((regexp (and regexp (make-regexp* regexp regexp/icase)))
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
# GNU Guix --- Functional package management for GNU
|
||||
# Copyright © 2012, 2013, 2014, 2015, 2017, 2019 Ludovic Courtès <ludo@gnu.org>
|
||||
# Copyright © 2013 Nikita Karetnikov <nikita@karetnikov.org>
|
||||
# Copyright © 2020 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
#
|
||||
# This file is part of GNU Guix.
|
||||
#
|
||||
|
@ -78,6 +79,17 @@ esac
|
|||
|
||||
test "`guix package -p "$profile" -I 'g.*e' | cut -f1`" = "guile-bootstrap"
|
||||
|
||||
guix package --bootstrap -p "$profile_alt" -i gcc-bootstrap
|
||||
installed="`guix package -p "$profile" -p "$profile_alt" -I | cut -f1 | xargs echo | sort`"
|
||||
case "x$installed" in
|
||||
"gcc-bootstrap guile-bootstrap make-boot0")
|
||||
true;;
|
||||
"*")
|
||||
false;;
|
||||
esac
|
||||
test "`guix package -p "$profile_alt" -p "$profile" -I | wc -l`" = "3"
|
||||
rm "$profile_alt"
|
||||
|
||||
# List generations.
|
||||
test "`guix package -p "$profile" -l | cut -f1 | grep guile | head -n1`" \
|
||||
= " guile-bootstrap"
|
||||
|
|
Reference in New Issue