Loading tools/findleaves.py +13 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import sys def perform_find(mindepth, prune, dirlist, filenames): result = [] pruneleaves = set(map(lambda x: os.path.split(x)[1], prune)) seen = set() for rootdir in dirlist: rootdepth = rootdir.count("/") for root, dirs, files in os.walk(rootdir, followlinks=True): Loading @@ -52,6 +53,18 @@ def perform_find(mindepth, prune, dirlist, filenames): if filename in files: result.append(os.path.join(root, filename)) del dirs[:] # filter out inodes that have already been seen due to symlink loops i = 0 while i < len(dirs): st = os.stat(os.path.join(root, dirs[i])) key = (st.st_dev, st.st_ino) if key in seen: del dirs[i] else: i += 1 seen.add(key) return result def usage(): Loading Loading
tools/findleaves.py +13 −0 Original line number Diff line number Diff line Loading @@ -26,6 +26,7 @@ import sys def perform_find(mindepth, prune, dirlist, filenames): result = [] pruneleaves = set(map(lambda x: os.path.split(x)[1], prune)) seen = set() for rootdir in dirlist: rootdepth = rootdir.count("/") for root, dirs, files in os.walk(rootdir, followlinks=True): Loading @@ -52,6 +53,18 @@ def perform_find(mindepth, prune, dirlist, filenames): if filename in files: result.append(os.path.join(root, filename)) del dirs[:] # filter out inodes that have already been seen due to symlink loops i = 0 while i < len(dirs): st = os.stat(os.path.join(root, dirs[i])) key = (st.st_dev, st.st_ino) if key in seen: del dirs[i] else: i += 1 seen.add(key) return result def usage(): Loading