blob: 44120f29e3ee4dc0eb4adad08508305fe5223fbe [file] [log] [blame]
Morten Krogh-Jespersen017a7002019-01-10 14:14:17 +01001#!/usr/bin/env python
2# Copyright (c) 2019, the R8 project authors. Please see the AUTHORS file
3# for details. All rights reserved. Use of this source code is governed by a
4# BSD-style license that can be found in the LICENSE file.
5
Morten Krogh-Jespersena6f0f2f2019-01-17 13:57:39 +01006import archive
7import argparse
Ian Zerny3f54e222019-02-12 10:51:17 +01008import jdk
Morten Krogh-Jespersen017a7002019-01-10 14:14:17 +01009import subprocess
10import sys
Morten Krogh-Jespersena6f0f2f2019-01-17 13:57:39 +010011import tempfile
Morten Krogh-Jespersen017a7002019-01-10 14:14:17 +010012import utils
13
Morten Krogh-Jespersena6f0f2f2019-01-17 13:57:39 +010014def parse_arguments():
15 parser = argparse.ArgumentParser(
16 description = 'R8lib wrapper for retrace tool.')
17 parser.add_argument(
18 '-c',
19 '--commit_hash',
20 help='Commit hash to download r8lib map file for.',
21 default=None)
22 parser.add_argument(
23 '--version',
24 help='Version to download r8lib map file for.',
25 default=None)
26 parser.add_argument(
27 '--map',
28 help='Path to r8lib map.',
29 default=utils.R8LIB_JAR + '.map')
30 parser.add_argument(
31 '--stacktrace',
32 help='Path to stacktrace file.',
33 default=None)
34 return parser.parse_args()
35
36
Morten Krogh-Jespersen017a7002019-01-10 14:14:17 +010037def main():
Morten Krogh-Jespersena6f0f2f2019-01-17 13:57:39 +010038 args = parse_arguments()
39 r8lib_map_path = args.map
40 hashOrVersion = args.commit_hash or args.version
41 if hashOrVersion:
42 download_path = archive.GetUploadDestination(
43 hashOrVersion,
44 'r8lib.jar.map',
45 args.commit_hash is not None)
46 if utils.file_exists_on_cloud_storage(download_path):
47 r8lib_map_path = tempfile.NamedTemporaryFile().name
48 utils.download_file_from_cloud_storage(download_path, r8lib_map_path)
49 else:
50 print('Could not find map file from argument: %s.' % hashOrVersion)
51 return 1
52
Ian Zerny3f54e222019-02-12 10:51:17 +010053 retrace_args = [
54 jdk.GetJavaExecutable(), '-jar', utils.RETRACE_JAR, r8lib_map_path
55 ]
Morten Krogh-Jespersena6f0f2f2019-01-17 13:57:39 +010056 if args.stacktrace:
57 retrace_args.append(args.stacktrace)
58
59 return subprocess.call(retrace_args)
60
Morten Krogh-Jespersen017a7002019-01-10 14:14:17 +010061
62if __name__ == '__main__':
63 sys.exit(main())