portageq: add new expand_virtual function
authorZac Medico <zmedico@gentoo.org>
Thu, 2 Jun 2011 12:50:54 +0000 (05:50 -0700)
committerZac Medico <zmedico@gentoo.org>
Thu, 2 Jun 2011 12:50:54 +0000 (05:50 -0700)
commit1edf9e3bd37fede61a21d3b6a84542d29d8f3021
tree58a323ba5fb8792baae6a8def80a26f457448e6c
parent10f6c6d3c028a509ed943ef76633c72dbbcff7f6
portageq: add new expand_virtual function

Something like this was requested in bug #157357. Now that Gentoo has
migrated all virtuals to GLEP 37 new-style virtuals, this kind of
function may be helpful in order to resolve the currently installed
provider of a particular virtual in scripts like bootstrap.sh.

Usage:

portageq expand_virtual <root> <atom>

Returns a \n separated list of atoms expanded from a
given virtual atom, excluding blocker atoms. Satisfied
virtual atoms are not included in the output, since
they are expanded to real atoms which are displayed.
Unsatisfied virtual atoms are displayed without
any expansion. The "match" command can be used to
resolve the returned atoms to specific installed
packages.

Example input/output:

$ portageq expand_virtual / virtual/jre
=dev-java/sun-jdk-1.6.0*

$ portageq expand_virtual / virtual/jre:1.5
dev-java/gcj-jdk

$ portageq expand_virtual / virtual/package-manager
sys-apps/portage

$ portageq expand_virtual / virtual/libc
sys-libs/glibc:2.2

$ portageq expand_virtual / virtual/os-headers
sys-kernel/linux-headers:0
bin/portageq