[yum-cvs] yum-utils repoquery.py,1.8,1.9

Seth Vidal skvidal at login.linux.duke.edu
Sat Jun 4 19:37:49 UTC 2005


Update of /home/groups/yum/cvs/yum-utils
In directory login:/tmp/cvs-serv9830

Modified Files:
	repoquery.py 
Log Message:

allow repoquery to handle pkg args like yum


Index: repoquery.py
===================================================================
RCS file: /home/groups/yum/cvs/yum-utils/repoquery.py,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- repoquery.py	2 Jun 2005 18:59:07 -0000	1.8
+++ repoquery.py	4 Jun 2005 19:37:47 -0000	1.9
@@ -29,6 +29,7 @@
 import yum
 import yum.config
 import yum.Errors
+import yum.packages
 import repomd.mdErrors
 
 version = "0.0.7"
@@ -225,7 +226,7 @@
                 grps.append(grp)
             return grps
         else:
-            return self.queryPkgFactory(self.pkgSack.returnNewestByNameArch())
+            return self.queryPkgFactory(self.pkgSack.returnPackages())
 
     def returnNewestByName(self, name):
         pkgs = []
@@ -243,26 +244,19 @@
             self.errorlog(0, "No package provides %s" % depstring)
         return self.queryPkgFactory(provider)
 
-    def matchPkgs(self, regexs):
-        if not regexs:
+    def matchPkgs(self, items):
+        if not items:
             return self.returnItems()
-    
+        
         pkgs = []
         notfound = {}
+        
+        exact, match, unmatch = yum.packages.parsePackages(self.pkgSack.returnPackages(),
+                                           items, casematch=1)
+        pkgs = exact + match
+        notfound = unmatch
 
-        for pkg in self.returnItems():
-            for expr in regexs:
-                if pkg.name == expr or fnmatch.fnmatch("%s" % pkg.name, expr):
-                    pkgs.append(pkg)
-                else:
-                    notfound[expr] = None
-
-        # This catches too many innocent victims which aren't packages at all
-        # so disabling for now
-        #for expr in notfound.keys():
-        #    self.errorlog(0, 'No match found for %s' % expr)
-
-        return pkgs
+        return self.queryPkgFactory(pkgs)
 
     def runQuery(self, items):
         pkgs = self.matchPkgs(items)




More information about the Yum-cvs-commits mailing list