[Tizen] Add prelauncher
[platform/framework/web/crosswalk-tizen.git] / vendor / depot_tools / git_try.py
1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file.
5 """Wrapper for trychange.py for git checkout."""
6
7 import logging
8 import sys
9
10 import breakpad  # pylint: disable=W0611
11
12 from scm import GIT
13 import subprocess2
14 import third_party.upload
15 import trychange
16 import git_cl
17
18
19 def GetRietveldIssueNumber():
20   try:
21     return GIT.Capture(
22         ['config', 'branch.%s.rietveldissue' % GIT.GetBranch('.')],
23         '.').strip()
24   except subprocess2.CalledProcessError:
25     return None
26
27
28 def GetRietveldPatchsetNumber():
29   try:
30     return GIT.Capture(
31         ['config', 'branch.%s.rietveldpatchset' % GIT.GetBranch('.')],
32         '.').strip()
33   except subprocess2.CalledProcessError:
34     return None
35
36
37 def GetRietveldServerUrl():
38   try:
39     return GIT.Capture(['config', 'rietveld.server'], '.').strip()
40   except subprocess2.CalledProcessError:
41     return None
42
43
44 if __name__ == '__main__':
45   args = sys.argv[1:]
46   patchset = GetRietveldPatchsetNumber()
47   if patchset:
48     args.extend([
49         '--issue', GetRietveldIssueNumber(),
50         '--patchset', patchset,
51     ])
52   else:
53     rietveld_url = GetRietveldServerUrl()
54     if rietveld_url:
55       args.extend(['--rietveld_url', GetRietveldServerUrl()])
56   try:
57     cl = git_cl.Changelist()
58     change = cl.GetChange(cl.GetUpstreamBranch(), None)
59     # Hack around a limitation in logging.
60     logging.getLogger().handlers = []
61     sys.exit(trychange.TryChange(
62         args, change, swallow_exception=False,
63         prog='git try',
64         extra_epilog='\n'
65                      'git try will diff against your tracked branch and will '
66                      'detect your rietveld\n'
67                      'code review if you are using git-cl\n'))
68   except third_party.upload.ClientLoginError, e:
69     print('Got an exception while trying to log in to Rietveld.')
70     print(str(e))