summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorTodd Gamblin <tgamblin@llnl.gov>2015-06-06 14:01:06 -0700
committerTodd Gamblin <tgamblin@llnl.gov>2015-06-06 15:26:48 -0700
commit5d7a6c0c4671626fd402245fe57cec526e6365f8 (patch)
treeb6da306c0079fca6b71fd81887ae27eb1bd1ecb6 /lib
parent1f0246f970c4198e59f039590b808afd5ef98d88 (diff)
downloadspack-5d7a6c0c4671626fd402245fe57cec526e6365f8.tar.gz
spack-5d7a6c0c4671626fd402245fe57cec526e6365f8.tar.bz2
spack-5d7a6c0c4671626fd402245fe57cec526e6365f8.tar.xz
spack-5d7a6c0c4671626fd402245fe57cec526e6365f8.zip
Add FileFilter convenience class to llnl.util.filesystem.
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/llnl/util/filesystem.py11
1 files changed, 10 insertions, 1 deletions
diff --git a/lib/spack/llnl/util/filesystem.py b/lib/spack/llnl/util/filesystem.py
index 8eff642938..029a7536df 100644
--- a/lib/spack/llnl/util/filesystem.py
+++ b/lib/spack/llnl/util/filesystem.py
@@ -25,7 +25,7 @@
__all__ = ['set_install_permissions', 'install', 'install_tree', 'traverse_tree',
'expand_user', 'working_dir', 'touch', 'touchp', 'mkdirp',
'force_remove', 'join_path', 'ancestor', 'can_access', 'filter_file',
- 'change_sed_delimiter', 'is_exe', 'force_symlink']
+ 'FileFilter', 'change_sed_delimiter', 'is_exe', 'force_symlink']
import os
import sys
@@ -96,6 +96,15 @@ def filter_file(regex, repl, *filenames, **kwargs):
shutil.rmtree(backup, ignore_errors=True)
+class FileFilter(object):
+ """Convenience class for calling filter_file a lot."""
+ def __init__(self, *filenames):
+ self.filenames = filenames
+
+ def filter(self, regex, repl, **kwargs):
+ return filter_file(regex, repl, *self.filenames, **kwargs)
+
+
def change_sed_delimiter(old_delim, new_delim, *filenames):
"""Find all sed search/replace commands and change the delimiter.
e.g., if the file contains seds that look like 's///', you can