From 5d7a6c0c4671626fd402245fe57cec526e6365f8 Mon Sep 17 00:00:00 2001 From: Todd Gamblin Date: Sat, 6 Jun 2015 14:01:06 -0700 Subject: Add FileFilter convenience class to llnl.util.filesystem. --- lib/spack/llnl/util/filesystem.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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 -- cgit v1.2.3-70-g09d2