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..3e1779069dbe8b050237ad27154fffd6fd3f451f |
--- /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(archive_prefix): |
+ return '%s-%s.tgz' % (archive_prefix, download_binaries.get_ubuntu_release()) |
+ |
+ |
+def main(archive_prefix, 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(archive_prefix)), |
+ '-C', |
+ target_dir]) |
+ stamp_file = os.path.join(stamp_dir or target_dir, '%s.txt' % archive_prefix) |
+ open(stamp_file, 'w').close() |
+ |
+ if stamp_dir: |
+ with open(os.path.join(stamp_dir, '%s.d' % archive_prefix), 'w') as f: |
+ f.write('%s: %s' % ( |
+ stamp_file, os.path.join(archive_dir, |
+ get_archive_name(archive_prefix)))) |
+ return 0 |
+ |
+ |
+if __name__ == '__main__': |
+ sys.exit(main(*sys.argv[1:])) |