Chromium Code Reviews| Index: third_party/instrumented_libraries/scripts/unpack_binaries.py |
| diff --git a/third_party/instrumented_libraries/scripts/unpack_binaries.py b/third_party/instrumented_libraries/scripts/unpack_binaries.py |
| new file mode 100755 |
| index 0000000000000000000000000000000000000000..73199cde333e7036b6ede21438c418681420d6ea |
| --- /dev/null |
| +++ b/third_party/instrumented_libraries/scripts/unpack_binaries.py |
| @@ -0,0 +1,42 @@ |
| +#!/usr/bin/env python |
| +# Copyright 2015 The Chromium Authors. All rights reserved. |
| +# Use of this source code is governed by a BSD-style license that can be |
| +# found in the LICENSE file. |
| + |
| +"""Unpacks pre-built sanitizer-instrumented third-party libraries.""" |
| + |
| +import os |
| +import subprocess |
| +import shutil |
| +import sys |
| + |
| +import download_binaries |
| + |
| + |
| +def get_archive_name(sanitizer_type): |
| + return '%s-%s.tgz' % (sanitizer_type, download_binaries.get_ubuntu_release()) |
|
earthdok
2015/05/28 18:27:46
Can we use consistent naming everywhere?
Here we
Sam McNally
2015/05/29 08:33:00
Done.
|
| + |
| + |
| +def main(sanitizer_type, archive_dir, target_dir, stamp_dir=None): |
| + shutil.rmtree(target_dir, ignore_errors=True) |
| + |
| + os.mkdir(target_dir) |
| + subprocess.check_call([ |
| + 'tar', |
| + '-zxf', |
| + os.path.join(archive_dir, get_archive_name(sanitizer_type)), |
| + '-C', |
| + target_dir]) |
| + stamp_file = os.path.join(stamp_dir or target_dir, '%s.txt' % sanitizer_type) |
| + open(stamp_file, 'w').close() |
| + |
| + if stamp_dir: |
| + with open(os.path.join(stamp_dir, '%s.d' % sanitizer_type), 'w') as f: |
| + f.write('%s: %s' % ( |
| + stamp_file, os.path.join(archive_dir, |
| + get_archive_name(sanitizer_type)))) |
| + return 0 |
| + |
| + |
| +if __name__ == '__main__': |
| + sys.exit(main(*sys.argv[1:])) |