aboutsummaryrefslogtreecommitdiffstats
path: root/utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'utils.py')
-rw-r--r--utils.py10
1 files changed, 6 insertions, 4 deletions
diff --git a/utils.py b/utils.py
index 169e1218b..acc9ec0f6 100644
--- a/utils.py
+++ b/utils.py
@@ -283,7 +283,7 @@ def makefile(dst, content=None, vars=None):
def copydir(src, dst, filter=None, ignore=None, force=True, recursive=True, vars=None,
- dir_filter_function=None, force_copy_symlinks=False):
+ dir_filter_function=None, file_filter_function=None, force_copy_symlinks=False):
if vars is not None:
src = src.format(**vars)
@@ -317,10 +317,12 @@ def copydir(src, dst, filter=None, ignore=None, force=True, recursive=True, vars
if recursive:
results.extend(
copydir(srcname, dstname, filter, ignore, force, recursive,
- vars, dir_filter_function, force_copy_symlinks))
+ vars, dir_filter_function, file_filter_function,
+ force_copy_symlinks))
else:
- if (filter is not None and not filter_match(name, filter)) or \
- (ignore is not None and filter_match(name, ignore)):
+ if (file_filter_function is not None and not file_filter_function(name, srcname)) \
+ or (filter is not None and not filter_match(name, filter)) \
+ or (ignore is not None and filter_match(name, ignore)):
continue
if not os.path.exists(dst):
os.makedirs(dst)