summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
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