blob: c68d9a664c4ec213e0f28f855c424b4dc9e35be9 [file] [log] [blame]
#!/usr/bin/env vpython
#
# 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.
"""
Update Chromium to ToT devtools-frontend.
"""
import argparse
import os
import shutil
import subprocess
import sys
def parse_options(cli_args):
parser = argparse.ArgumentParser(
description='Roll dependencies from Chromium.')
parser.add_argument('chromium_dir', help='Chromium directory')
parser.add_argument('devtools_dir', help='DevTools directory')
parser.add_argument('reviewer', help='reviewer for the CL')
return parser.parse_args(cli_args)
def update(options):
# Update from upstream
subprocess.check_call(['git', 'fetch', 'origin'],
cwd=options.chromium_dir)
subprocess.check_call(['git', 'checkout', 'origin/master'],
cwd=options.chromium_dir)
subprocess.check_call(['git', 'fetch', 'origin'],
cwd=options.devtools_dir)
# Get commit hashes
new_rev = subprocess.check_output(['git', 'rev-parse', 'origin/master'],
cwd=options.devtools_dir).strip()
old_rev = subprocess.check_output(
['gclient', 'getdep', '--var=devtools_frontend_revision'],
cwd=options.chromium_dir).strip()
rev_range = '%s..%s' % (old_rev[0:10], new_rev[0:10])
# Create commit message
message = 'Update third_party/devtools-frontend %s' % rev_range
message = message + '\n\n'
message = message + 'https://chromium.googlesource.com/devtools/devtools-frontend/+log/'
message = message + rev_range
# Display changes
subprocess.check_call(['git', 'log', '--oneline', rev_range],
cwd=options.devtools_dir)
# Set deps
subprocess.check_call(
['gclient', 'setdep', '--var=devtools_frontend_revision=%s' % new_rev],
cwd=options.chromium_dir)
# Create commit
subprocess.check_call(['git', 'add', 'DEPS'], cwd=options.chromium_dir)
subprocess.check_call(
['git',
'checkout',
'-b',
'devtools_frontend_%s_%s' % (old_rev[0:5], new_rev[0:5])],
cwd=options.chromium_dir)
subprocess.check_call(['git', 'commit', '-m', message],
cwd=options.chromium_dir)
# Upload CL
subprocess.check_call(
['git',
'cl',
'upload',
'-m', message,
'--tbrs=%s' % options.reviewer,
'-c'],
cwd=options.chromium_dir)
subprocess.check_call(['git', 'cl', 'web'], cwd=options.chromium_dir)
if __name__ == '__main__':
OPTIONS = parse_options(sys.argv[1:])
update(OPTIONS)