| #!/usr/bin/env python3 |
| # |
| # Copyright 2019 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. |
| |
| from __future__ import print_function |
| |
| import argparse |
| import os |
| import subprocess |
| import sys |
| |
| from util import build_utils |
| |
| |
| def _AddArguments(parser): |
| """Adds arguments related to jetifying to parser. |
| |
| Args: |
| parser: ArgumentParser object. |
| """ |
| parser.add_argument( |
| '--input-path', |
| required=True, |
| help='Path to input file(s). Either the classes ' |
| 'directory, or the path to a jar.') |
| parser.add_argument( |
| '--output-path', |
| required=True, |
| help='Path to output final file(s) to. Either the ' |
| 'final classes directory, or the directory in ' |
| 'which to place the instrumented/copied jar.') |
| parser.add_argument( |
| '--jetify-path', required=True, help='Path to jetify bin.') |
| parser.add_argument( |
| '--jetify-config-path', required=True, help='Path to jetify config file.') |
| |
| |
| def _RunJetifyCommand(parser): |
| args = parser.parse_args() |
| cmd = [ |
| args.jetify_path, |
| '-i', |
| args.input_path, |
| '-o', |
| args.output_path, |
| # Need to suppress a lot of warning output when jar doesn't have |
| # any references rewritten. |
| '-l', |
| 'error' |
| ] |
| if args.jetify_config_path: |
| cmd.extend(['-c', args.jetify_config_path]) |
| # Must wait for jetify command to complete to prevent race condition. |
| env = os.environ.copy() |
| env['JAVA_HOME'] = build_utils.JAVA_HOME |
| subprocess.check_call(cmd, env=env) |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser() |
| _AddArguments(parser) |
| _RunJetifyCommand(parser) |
| |
| |
| if __name__ == '__main__': |
| sys.exit(main()) |