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

svn path=/main/trunk/; revision=9033

bin/portageq

index f23598f757609a1e51701624f287704870bd609b..bf1852f5524a3afe81fd283b21c65bcf6c1d0f1e 100755 (executable)
@@ -238,17 +238,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(atom)
+               results.sort()
+       for cpv in results:
+               print cpv
 match.uses_root = True