| # Copyright 2020 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import argparse |
| import os |
| import shutil |
| import subprocess |
| import sys |
| |
| |
| def main(): |
| description = 'Packages WebKit build for Clusterfuzz.' |
| parser = argparse.ArgumentParser(description=description) |
| parser.add_argument('--output', |
| help='Name of the output file.') |
| parser.add_argument('--webkit_build', |
| help='WebKit build directory to copy.') |
| parser.add_argument('--clusterfuzz_script', |
| help='Clusterfuzz script to copy.') |
| parser.add_argument('--clang_asan_library', |
| help='Clang ASan library to copy.') |
| |
| opts = parser.parse_args() |
| |
| if os.path.exists(opts.output): |
| shutil.rmtree(opts.output) |
| |
| shutil.copytree(opts.webkit_build, opts.output, symlinks=True) |
| shutil.copyfile( |
| opts.clusterfuzz_script, |
| os.path.join(opts.output, |
| os.path.basename(opts.clusterfuzz_script))) |
| shutil.copyfile( |
| opts.clang_asan_library, |
| os.path.join(opts.output, |
| os.path.basename(opts.clang_asan_library))) |
| |
| zip_command = ['zip', '--symlinks', '-r', os.extsep.join([opts.output, 'zip']), opts.output] |
| proc = subprocess.Popen(zip_command) |
| proc.communicate() |
| return proc.returncode |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |