1cb93a386Sopenharmony_ci#!/usr/bin/python2
2cb93a386Sopenharmony_ci
3cb93a386Sopenharmony_ci# Copyright 2014 Google Inc.
4cb93a386Sopenharmony_ci#
5cb93a386Sopenharmony_ci# Use of this source code is governed by a BSD-style license that can be
6cb93a386Sopenharmony_ci# found in the LICENSE file.
7cb93a386Sopenharmony_ci
8cb93a386Sopenharmony_ci"""Add message to codereview issue.
9cb93a386Sopenharmony_ci
10cb93a386Sopenharmony_ciThis script takes a codereview issue number as its argument and a (possibly
11cb93a386Sopenharmony_cimulti-line) message on stdin.  It appends the message to the given issue.
12cb93a386Sopenharmony_ci
13cb93a386Sopenharmony_ciUsage:
14cb93a386Sopenharmony_ci  echo MESSAGE | %prog CODEREVIEW_ISSUE
15cb93a386Sopenharmony_cior:
16cb93a386Sopenharmony_ci  %prog CODEREVIEW_ISSUE <<EOF
17cb93a386Sopenharmony_ci  MESSAGE
18cb93a386Sopenharmony_ci  EOF
19cb93a386Sopenharmony_cior:
20cb93a386Sopenharmony_ci  %prog --help
21cb93a386Sopenharmony_ci"""
22cb93a386Sopenharmony_ci
23cb93a386Sopenharmony_ciimport optparse
24cb93a386Sopenharmony_ciimport sys
25cb93a386Sopenharmony_ci
26cb93a386Sopenharmony_ciimport fix_pythonpath  # pylint: disable=W0611
27cb93a386Sopenharmony_cifrom common.py.utils import find_depot_tools  # pylint: disable=W0611
28cb93a386Sopenharmony_ciimport rietveld
29cb93a386Sopenharmony_ci
30cb93a386Sopenharmony_ci
31cb93a386Sopenharmony_ciRIETVELD_URL = 'https://codereview.chromium.org'
32cb93a386Sopenharmony_ci
33cb93a386Sopenharmony_ci
34cb93a386Sopenharmony_cidef add_codereview_message(issue, message):
35cb93a386Sopenharmony_ci  """Add a message to a given codereview.
36cb93a386Sopenharmony_ci
37cb93a386Sopenharmony_ci  Args:
38cb93a386Sopenharmony_ci      codereview_url: (string) we will extract the issue number from
39cb93a386Sopenharmony_ci          this url, or this could simply be the issue number.
40cb93a386Sopenharmony_ci      message: (string) message to add.
41cb93a386Sopenharmony_ci  """
42cb93a386Sopenharmony_ci  # Passing None for the email and auth_config will result in a prompt or
43cb93a386Sopenharmony_ci  # reuse of existing cached credentials.
44cb93a386Sopenharmony_ci  my_rietveld = rietveld.Rietveld(RIETVELD_URL, email=None, auth_config=None)
45cb93a386Sopenharmony_ci
46cb93a386Sopenharmony_ci  my_rietveld.add_comment(issue, message)
47cb93a386Sopenharmony_ci
48cb93a386Sopenharmony_ci
49cb93a386Sopenharmony_cidef main(argv):
50cb93a386Sopenharmony_ci  """main function; see module-level docstring and GetOptionParser help.
51cb93a386Sopenharmony_ci
52cb93a386Sopenharmony_ci  Args:
53cb93a386Sopenharmony_ci      argv: sys.argv[1:]-type argument list.
54cb93a386Sopenharmony_ci  """
55cb93a386Sopenharmony_ci  option_parser = optparse.OptionParser(usage=__doc__)
56cb93a386Sopenharmony_ci  _, arguments = option_parser.parse_args(argv)
57cb93a386Sopenharmony_ci
58cb93a386Sopenharmony_ci  if len(arguments) > 1:
59cb93a386Sopenharmony_ci    option_parser.error('Extra arguments.')
60cb93a386Sopenharmony_ci  if len(arguments) != 1:
61cb93a386Sopenharmony_ci    option_parser.error('Missing issue number.')
62cb93a386Sopenharmony_ci
63cb93a386Sopenharmony_ci  message = sys.stdin.read()
64cb93a386Sopenharmony_ci  add_codereview_message(int(arguments[0]), message)
65cb93a386Sopenharmony_ci
66cb93a386Sopenharmony_ci
67cb93a386Sopenharmony_ciif __name__ == '__main__':
68cb93a386Sopenharmony_ci  main(sys.argv[1:])
69cb93a386Sopenharmony_ci
70