This commit is contained in:
A. Murat Eren
2005-08-09 07:08:06 +00:00
parent 98b82062bc
commit 57f845d91b
+20 -6
View File
@@ -189,16 +189,30 @@ def get_file_hashes(top, excludePrefixes=None, removePrefix=None):
matching those prefixes. The removePrefix string parameter will be matching those prefixes. The removePrefix string parameter will be
used to remove prefix from filePath while matching excludes, if used to remove prefix from filePath while matching excludes, if
given.""" given."""
for root, dirs, files in os.walk(top, topdown=False):
# check if root matches an exclude, and continue def hasExcludedPrefix(filename):
if excludePrefixes and removePrefix: if excludePrefixes and removePrefix:
p = remove_prefix(removePrefix, root) tempfnam = remove_prefix(removePrefix, filename)
if [e for e in excludePrefixes if p.startswith(e)]: for p in excludePrefixes:
continue if tempfnam.startswith(p):
return 1
else:
return 0
return 0
for root, dirs, files in os.walk(top, topdown=False):
if os.path.islink(root):
if not hasExcludedPrefix(root):
#yield the symlink..
yield (root, sha1_file(root))
excludePrefixes.append(remove_prefix(removePrefix, root) + "/")
for fname in files: for fname in files:
f = os.path.join(root, fname) f = os.path.join(root, fname)
yield (f, sha1_file(f)) if hasExcludedPrefix(f):
continue
else:
yield (f, sha1_file(f))
def copy_dir(src, dest): def copy_dir(src, dest):
"""copy source dir to destination dir recursively""" """copy source dir to destination dir recursively"""