Source code
Revision control
Copy as Markdown
Other Tools
#!/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())