From 434f1219fd28c66ccb10ff40d66845e27bbf636d Mon Sep 17 00:00:00 2001 From: Edward Lemur Date: Tue, 3 Dec 2019 22:05:56 +0000 Subject: [PATCH] gclient: Remove annotated_gclient. Shouldn't be used anymore. Change-Id: I4fc152e7425124d46aa3be12359ed7513f0d3892 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1949407 Reviewed-by: Robbie Iannucci Commit-Queue: Edward Lesmes --- annotated_gclient.py | 91 -------------------------------------------- 1 file changed, 91 deletions(-) delete mode 100755 annotated_gclient.py diff --git a/annotated_gclient.py b/annotated_gclient.py deleted file mode 100755 index af5bcc5bd6..0000000000 --- a/annotated_gclient.py +++ /dev/null @@ -1,91 +0,0 @@ -#!/usr/bin/env python -# Copyright 2013 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. - -"""Wraps gclient calls with annotated output. - -Note that you will have to use -- to stop option parsing for gclient flags. - -To run `gclient sync --gclientfile=.gclient` and annotate got_v8_revision: - `annotated_gclient.py --revision-mapping='{"src/v8": "got_v8_revision"}' -- - sync --gclientfile=.gclient` -""" - -from __future__ import print_function - -import contextlib -import json -import optparse -import os -import subprocess -import sys -import tempfile - - -@contextlib.contextmanager -def temp_filename(suffix='', prefix='tmp'): - output_fd, output_file = tempfile.mkstemp(suffix=suffix, prefix=prefix) - os.close(output_fd) - - yield output_file - - try: - os.remove(output_file) - except OSError as e: - print('Error cleaning up temp file %s: %s' % (output_file, e)) - - -def parse_got_revision(filename, revision_mapping): - result = {} - with open(filename) as f: - data = json.load(f) - - for path, info in data['solutions'].items(): - # gclient json paths always end with a slash - path = path.rstrip('/') - if path in revision_mapping: - propname = revision_mapping[path] - result[propname] = info['revision'] - - return result - - -def emit_buildprops(got_revisions): - for prop, revision in got_revisions.items(): - print('@@@SET_BUILD_PROPERTY@%s@%s@@@' % (prop, json.dumps(revision))) - - -def main(): - parser = optparse.OptionParser( - description=('Runs gclient and annotates the output with any ' - 'got_revisions.')) - parser.add_option('--revision-mapping', default='{}', - help='json dict of directory-to-property mappings.') - parser.add_option('--suffix', default='gclient', - help='tempfile suffix') - opts, args = parser.parse_args() - - revision_mapping = json.loads(opts.revision_mapping) - - if not args: - parser.error('Must provide arguments to gclient.') - - if any(a.startswith('--output-json') for a in args): - parser.error('Can\'t call annotated_gclient with --output-json.') - - with temp_filename(opts.suffix) as f: - cmd = ['gclient'] - cmd.extend(args) - cmd.extend(['--output-json', f]) - p = subprocess.Popen(cmd) - p.wait() - - if p.returncode == 0: - revisions = parse_got_revision(f, revision_mapping) - emit_buildprops(revisions) - return p.returncode - - -if __name__ == '__main__': - sys.exit(main())