[Rpm-metadata] Branch 'maintenance' - genpkgmetadata.py

Seth Vidal skvidal at linux.duke.edu
Mon Nov 26 17:49:58 UTC 2007


 genpkgmetadata.py |   17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

New commits:
commit b5f78272f80a792d33f9155b61bd5e132bbafdea
Author: Seth Vidal <skvidal at fedoraproject.org>
Date:   Mon Nov 26 12:44:45 2007 -0500

    import local os.walk and fix symlink problem in it
    finally closes: rh bug 228827

diff --git a/genpkgmetadata.py b/genpkgmetadata.py
index 3b7eff6..bef0225 100755
--- a/genpkgmetadata.py
+++ b/genpkgmetadata.py
@@ -76,6 +76,21 @@ class MetaDataGenerator:
         self.pkgcount = 0
         self.files = []
 
+    def _os_path_walk(self, top, func, arg):
+        """Directory tree walk with callback function.
+         copy of os.path.walk, fixes the link/stating problem
+         """
+
+        try:
+            names = os.listdir(top)
+        except os.error:
+            return
+        func(arg, top, names)
+        for name in names:
+            name = os.path.join(top, name)
+            if os.path.isdir(name):
+                self._os_path_walk(name, func, arg)
+
     def getFileList(self, basepath, directory, ext):
         """Return all files in path matching ext, store them in filelist,
         recurse dirs. Returns a list object"""
@@ -95,7 +110,7 @@ class MetaDataGenerator:
 
         filelist = []
         startdir = os.path.join(basepath, directory) + '/'
-        os.path.walk(startdir, extension_visitor, filelist)
+        self._os_path_walk(startdir, extension_visitor, filelist)
         return filelist
 
     def checkTimeStamps(self, directory):



More information about the Rpm-metadata mailing list