53 lines
1.7 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
# Copyright 2023 the V8 project authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
"""Pushes changes to test262 inside V8 to the upstream repo."""
from argparse import ArgumentParser
from pathlib import Path
import sys
def main():
parser = ArgumentParser()
parser.add_argument(
'-t',
'--blink-tools-path',
help=("Absolute path to where blink tools are located "
"(usually inside a local chromium checkout)."))
parser.add_argument(
'--config-path',
help="Absolute path to a project configuration json file.",
default=(Path(__file__).parent / 'v8configs.json'))
parser.add_argument(
'--approver',
help="Flag indicating that this run will only approve and merge "
"exisiting PRs. Approval of these PRs needs to be done by an account "
"different from the one that created the PR.",
action="store_true")
args, exporter_args = parser.parse_known_args(sys.argv)
sys.path.append(args.blink_tools_path)
from blinkpy.common import exit_codes
from blinkpy.common.host import Host
from blinkpy.common.path_finder import add_depot_tools_dir_to_os_path
from v8_exporter import V8TestExporter, V8TestApprover
from v8configs import config_from_file
add_depot_tools_dir_to_os_path()
host = Host(project_config_factory=config_from_file(args.config_path))
exporter = (V8TestApprover if args.approver else V8TestExporter)(host)
try:
success = exporter.main(exporter_args[1:])
host.exit(0 if success else 1)
except KeyboardInterrupt:
host.print_('Interrupted, exiting')
host.exit(exit_codes.INTERRUPTED_EXIT_STATUS)
if __name__ == '__main__':
main()