| #!/usr/bin/env python3 |
| # Copyright 2023 The Chromium Authors |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| import argparse |
| import pathlib |
| import re |
| import subprocess |
| |
| _DIR_SOURCE_ROOT = str(pathlib.Path(__file__).absolute().parents[2]) |
| |
| |
| def main(): |
| parser = argparse.ArgumentParser() |
| # Hide args set by wrappers so that using --help with the wrappers does not |
| # show them. |
| parser.add_argument('--subdir', required=True, help=argparse.SUPPRESS) |
| parser.add_argument('--cipd-package', |
| required=True, |
| help=argparse.SUPPRESS) |
| parser.add_argument('--git-log-url', help=argparse.SUPPRESS) |
| parser.add_argument('--cipd-instance', |
| help='Uses value from DEPS by default') |
| args = parser.parse_args() |
| |
| if not args.cipd_instance: |
| cmd = [ |
| 'gclient', 'getdep', '-r', f'src/{args.subdir}:{args.cipd_package}' |
| ] |
| args.cipd_instance = subprocess.check_output(cmd, |
| cwd=_DIR_SOURCE_ROOT, |
| text=True) |
| |
| cmd = [ |
| 'cipd', 'describe', args.cipd_package, '-version', args.cipd_instance |
| ] |
| print(' '.join(cmd)) |
| output = subprocess.check_output(cmd, text=True) |
| print(output, end='') |
| if args.git_log_url: |
| git_hashes = re.findall(r'version:.*?@(\w+)', output) |
| if not git_hashes: |
| print('Could not find git hash from output.') |
| else: |
| # Multiple version tags exist when multiple versions have the same sha1. |
| last_version = git_hashes[-1] |
| print() |
| print('Recent commits:', args.git_log_url.format(last_version)) |
| |
| |
| if __name__ == '__main__': |
| main() |