Enhance the portageq match command to list all installed packages
authorZac Medico <zmedico@gentoo.org>
Fri, 21 Dec 2007 11:51:27 +0000 (11:51 -0000)
committerZac Medico <zmedico@gentoo.org>
Fri, 21 Dec 2007 11:51:27 +0000 (11:51 -0000)
when given an empty string. (trunk r9032:9034)

svn path=/main/branches/2.1.2/; revision=9036

bin/portageq

index b097889ae38c36dd8626193a570771e1486dbb6f..8ffac0b75ecd777073cfbb60892ff1932ecc66dd 100755 (executable)
@@ -239,17 +239,22 @@ all_best_visible.uses_root = True
 
 
 def match(argv):
-       """<root> <category/package>
-       Returns \n seperated list of category/package-version
+       """<root> <atom>
+       Returns a \\n separated list of category/package-version.
+       When given an empty string, all installed packages will
+       be listed.
        """
-       if (len(argv) < 2):
-               print "ERROR: insufficient parameters!"
+       if len(argv) != 2:
+               print "ERROR: expected 2 parameters, got %d!" % len(argv)
                sys.exit(2)
-       try:
-               print "\n".join(portage.db[argv[0]]["vartree"].dbapi.match(argv[1]))
-       except KeyError, e:
-               portage.writemsg("%s\n" % str(e), noiselevel=-1)
-               sys.exit(1)
+       root, atom = argv
+       if atom:
+               results = portage.db[root]["vartree"].dbapi.match(atom)
+       else:
+               results = portage.db[root]["vartree"].dbapi.cpv_all()
+               results.sort()
+       for cpv in results:
+               print cpv
 match.uses_root = True