[yum-cvs] yum/yum sqlitesack.py,1.86,1.87
James Bowes
jbowes at linux.duke.edu
Fri Mar 9 17:06:00 UTC 2007
Update of /home/groups/yum/cvs/yum/yum
In directory login1.linux.duke.edu:/tmp/cvs-serv17397/yum
Modified Files:
sqlitesack.py
Log Message:
Use a user-defined function for searchfiles
Index: sqlitesack.py
===================================================================
RCS file: /home/groups/yum/cvs/yum/yum/sqlitesack.py,v
retrieving revision 1.86
retrieving revision 1.87
diff -u -r1.86 -r1.87
--- sqlitesack.py 5 Mar 2007 14:04:24 -0000 1.86
+++ sqlitesack.py 9 Mar 2007 17:05:57 -0000 1.87
@@ -303,33 +303,30 @@
po = self.pc(rep, pkg)
pkgs.append(po)
+ def filelist_globber(dirname, filenames):
+ files = filenames.split('/')
+ fns = map(lambda f: '%s/%s' % (dirname, f), files)
+ if glob:
+ matches = fnmatch.filter(fns, name)
+ else:
+ matches = filter(lambda x: name==x, fns)
+ return len(matches)
+
+ cache.create_function("filelist_globber", 2, filelist_globber)
# for all the ones where filenames is multiple files,
# make the files up whole and use python's globbing method
- executeSQL(cur, "select packages.pkgID as pkgID, \
- filelist.dirname as dirname, \
- filelist.filenames as filenames \
+ executeSQL(cur, "select packages.pkgID as pkgID \
from filelist,packages where \
packages.pkgKey = filelist.pkgKey \
- and length(filelist.filetypes) > 1")
+ and length(filelist.filetypes) > 1 \
+ and filelist_globber(filelist.dirname,filelist.filenames)")
for ob in cur:
- pkgId = ob['pkgId']
- d = ob['dirname']
- fs = ob['filenames']
-
- files = fs.split('/')
- fns = map(lambda f: '%s/%s' % (d, f), files)
- if glob:
- matches = fnmatch.filter(fns, name)
- else:
- matches = filter(lambda x: name==x, fns)
-
- if len(matches) > 0:
- if self._excluded(rep, pkgId):
- continue
- pkg = self.getPackageDetails(pkgId)
- po = self.pc(rep, pkg)
- pkgs.append(po)
+ if self._excluded(rep, ob['pkgId']):
+ continue
+ pkg = self.getPackageDetails(ob['pkgId'])
+ po = self.pc(rep, pkg)
+ pkgs.append(po)
pkgs = misc.unique(pkgs)
return pkgs
More information about the Yum-cvs-commits
mailing list