68 lines
1.7 KiB
Python
Executable file
68 lines
1.7 KiB
Python
Executable file
#!/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())
|