summaryrefslogtreecommitdiffstats
path: root/bin/portageq
diff options
context:
space:
mode:
authorZdenek Behan <rain@matfyz.cz>2012-04-13 14:51:46 -0700
committerZac Medico <zmedico@gentoo.org>2012-04-13 14:51:46 -0700
commit0bb454d0aecba0be1dd197038eefc4be6be2580e (patch)
tree59a27d88576f3fb56f4725a18f4ea9bd4e1a8547 /bin/portageq
parent54597d1ce55bd3d67c22a1cc5c7e915a02406477 (diff)
downloadportage-0bb454d0aecba0be1dd197038eefc4be6be2580e.tar.gz
portage-0bb454d0aecba0be1dd197038eefc4be6be2580e.tar.bz2
portage-0bb454d0aecba0be1dd197038eefc4be6be2580e.zip
portageq mass_best_visible: optional "type" arg
Diffstat (limited to 'bin/portageq')
-rwxr-xr-xbin/portageq22
1 files changed, 18 insertions, 4 deletions
diff --git a/bin/portageq b/bin/portageq
index fcdb9d963..dc465d211 100755
--- a/bin/portageq
+++ b/bin/portageq
@@ -504,21 +504,35 @@ def best_visible(argv):
writemsg_stdout("%s\n" % (pkg.cpv,), noiselevel=-1)
return os.EX_OK
+ # No package found, write out an empty line.
+ writemsg_stdout("\n", noiselevel=-1)
+
return 1
best_visible.uses_root = True
def mass_best_visible(argv):
- """<eroot> [<category/package>]+
+ """<root> [<type>] [<category/package>]+
Returns category/package-version (without .ebuild).
+ The pkgtype argument defaults to "ebuild" if unspecified,
+ otherwise it must be one of ebuild, binary, or installed.
"""
+ type_map = {
+ "ebuild":"porttree",
+ "binary":"bintree",
+ "installed":"vartree"}
+
if (len(argv) < 2):
print("ERROR: insufficient parameters!")
sys.exit(2)
try:
- for pack in argv[1:]:
- mylist=portage.db[argv[0]]["porttree"].dbapi.match(pack)
- print(pack+":"+portage.best(mylist))
+ root = argv.pop(0)
+ pkgtype = "ebuild"
+ if argv[0] in type_map:
+ pkgtype = argv.pop(0)
+ for pack in argv:
+ writemsg_stdout("%s:" % pack, noiselevel=-1)
+ best_visible([root, pkgtype, pack])
except KeyError:
sys.exit(1)
mass_best_visible.uses_root = True