Chromium Code Reviews| Index: scripts/common/chromium_utils.py |
| diff --git a/scripts/common/chromium_utils.py b/scripts/common/chromium_utils.py |
| index a5fc2296f7add14cabec1eebac12dad3ef520b2b..b8799b2c3a4a0f1e8e8b787c9bfa26a78cc2e13f 100644 |
| --- a/scripts/common/chromium_utils.py |
| +++ b/scripts/common/chromium_utils.py |
| @@ -475,7 +475,7 @@ def CopyFileToDir(src_path, dest_dir, dest_fn=None): |
| def MakeZip(output_dir, archive_name, file_list, file_relative_dir, |
| - raise_error=True, remove_archive_directory=True): |
| + raise_error=True, remove_archive_directory=True, replacements=None): |
| """Packs files into a new zip archive. |
| Files are first copied into a directory within the output_dir named for |
| @@ -499,6 +499,10 @@ def MakeZip(output_dir, archive_name, file_list, file_relative_dir, |
| the list is not found. |
| remove_archive_directory: Whether to remove the archive staging directory |
| before copying files over to it. |
| + replacements: A list of fun(path) -> path functions. For each file |
| + to add, transform the path with each function in replacements in order, |
| + and read data from the resulting file instead. i.e. foo.exe could actually |
| + contain data from foo.asan.exe. |
| Returns: |
| A tuple consisting of (archive_dir, zip_file_path), where archive_dir |
| @@ -527,6 +531,15 @@ def MakeZip(output_dir, archive_name, file_list, file_relative_dir, |
| # These paths are relative to the file_relative_dir. We need to copy |
| # them over maintaining the relative directories, where applicable. |
| src_path = os.path.join(file_relative_dir, needed_file) |
| + new_src_path = src_path |
| + for func in (replacements or []): |
| + new_src_path = func(src_path) |
|
M-A Ruel
2012/11/27 20:40:15
With the code you wrote, you could as well do:
if
iannucci
2012/11/28 03:19:34
Yeah... the intent was that there could be multipl
|
| + if new_src_path is None: |
| + print 'Skipping %s' % src_path |
| + continue |
| + if new_src_path != src_path: |
| + print 'Replacing contents of %s with %s' % (src_path, new_src_path) |
| + src_path = new_src_path |
| dirname, basename = os.path.split(needed_file) |
| try: |
| if os.path.isdir(src_path): |
| @@ -535,9 +548,9 @@ def MakeZip(output_dir, archive_name, file_list, file_relative_dir, |
| elif dirname != '' and basename != '': |
| dest_dir = os.path.join(archive_dir, dirname) |
| MaybeMakeDirectory(dest_dir) |
| - CopyFileToDir(src_path, dest_dir) |
| + CopyFileToDir(src_path, dest_dir, basename) |
| else: |
| - CopyFileToDir(src_path, archive_dir) |
| + CopyFileToDir(src_path, archive_dir, basename) |
| except PathNotFound: |
| if raise_error: |
| raise |