| OLD | NEW | 
|---|
| 1 #!/usr/bin/env python | 1 #!/usr/bin/env python | 
| 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
| 3 # Use of this source code is governed by a BSD-style license that can be | 3 # Use of this source code is governed by a BSD-style license that can be | 
| 4 # found in the LICENSE file. | 4 # found in the LICENSE file. | 
| 5 | 5 | 
| 6 """Client-side script to send a try job to the try server. It communicates to | 6 """Client-side script to send a try job to the try server. It communicates to | 
| 7 the try server by either writting to a svn repository or by directly connecting | 7 the try server by either writting to a svn repository or by directly connecting | 
| 8 to the server by HTTP. | 8 to the server by HTTP. | 
| 9 """ | 9 """ | 
| 10 | 10 | 
| 11 import datetime | 11 import datetime | 
| 12 import errno | 12 import errno | 
| 13 import getpass | 13 import getpass | 
|  | 14 import json | 
| 14 import logging | 15 import logging | 
| 15 import optparse | 16 import optparse | 
| 16 import os | 17 import os | 
| 17 import posixpath | 18 import posixpath | 
| 18 import re | 19 import re | 
| 19 import shutil | 20 import shutil | 
| 20 import sys | 21 import sys | 
| 21 import tempfile | 22 import tempfile | 
| 22 import urllib | 23 import urllib | 
| 23 | 24 | 
| 24 try: |  | 
| 25   import simplejson as json  # pylint: disable=F0401 |  | 
| 26 except ImportError: |  | 
| 27   try: |  | 
| 28     import json  # pylint: disable=F0401 |  | 
| 29   except ImportError: |  | 
| 30     # Import the one included in depot_tools. |  | 
| 31     sys.path.append(os.path.join(os.path.dirname(__file__), 'third_party')) |  | 
| 32     import simplejson as json  # pylint: disable=F0401 |  | 
| 33 |  | 
| 34 import breakpad  # pylint: disable=W0611 | 25 import breakpad  # pylint: disable=W0611 | 
| 35 | 26 | 
| 36 import gcl | 27 import gcl | 
| 37 import fix_encoding | 28 import fix_encoding | 
| 38 import gclient_utils | 29 import gclient_utils | 
| 39 import scm | 30 import scm | 
| 40 import subprocess2 | 31 import subprocess2 | 
| 41 | 32 | 
| 42 | 33 | 
| 43 __version__ = '1.2' | 34 __version__ = '1.2' | 
| (...skipping 693 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 737       if options.files: | 728       if options.files: | 
| 738         parser.error('You cannot specify files and --url at the same time.') | 729         parser.error('You cannot specify files and --url at the same time.') | 
| 739       options.diff = urllib.urlopen(options.url).read() | 730       options.diff = urllib.urlopen(options.url).read() | 
| 740     elif options.diff: | 731     elif options.diff: | 
| 741       if options.files: | 732       if options.files: | 
| 742         parser.error('You cannot specify files and --diff at the same time.') | 733         parser.error('You cannot specify files and --diff at the same time.') | 
| 743       options.diff = gclient_utils.FileRead(options.diff, 'rb') | 734       options.diff = gclient_utils.FileRead(options.diff, 'rb') | 
| 744     elif options.issue and options.patchset is None: | 735     elif options.issue and options.patchset is None: | 
| 745       # Retrieve the patch from rietveld when the diff is not specified. | 736       # Retrieve the patch from rietveld when the diff is not specified. | 
| 746       # When patchset is specified, it's because it's done by gcl/git-try. | 737       # When patchset is specified, it's because it's done by gcl/git-try. | 
| 747       if json is None: |  | 
| 748         parser.error('json or simplejson library is missing, please install.') |  | 
| 749       api_url = '%s/api/%d' % (options.rietveld_url, options.issue) | 738       api_url = '%s/api/%d' % (options.rietveld_url, options.issue) | 
| 750       logging.debug(api_url) | 739       logging.debug(api_url) | 
| 751       contents = json.loads(urllib.urlopen(api_url).read()) | 740       contents = json.loads(urllib.urlopen(api_url).read()) | 
| 752       options.patchset = contents['patchsets'][-1] | 741       options.patchset = contents['patchsets'][-1] | 
| 753       diff_url = ('%s/download/issue%d_%d.diff' % | 742       diff_url = ('%s/download/issue%d_%d.diff' % | 
| 754           (options.rietveld_url,  options.issue, options.patchset)) | 743           (options.rietveld_url,  options.issue, options.patchset)) | 
| 755       diff = GetMungedDiff('', urllib.urlopen(diff_url).readlines()) | 744       diff = GetMungedDiff('', urllib.urlopen(diff_url).readlines()) | 
| 756       options.diff = ''.join(diff[0]) | 745       options.diff = ''.join(diff[0]) | 
| 757       changed_files = diff[1] | 746       changed_files = diff[1] | 
| 758     else: | 747     else: | 
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 848     return 1 | 837     return 1 | 
| 849   except (gclient_utils.Error, subprocess2.CalledProcessError), e: | 838   except (gclient_utils.Error, subprocess2.CalledProcessError), e: | 
| 850     print >> sys.stderr, e | 839     print >> sys.stderr, e | 
| 851     return 1 | 840     return 1 | 
| 852   return 0 | 841   return 0 | 
| 853 | 842 | 
| 854 | 843 | 
| 855 if __name__ == "__main__": | 844 if __name__ == "__main__": | 
| 856   fix_encoding.fix_encoding() | 845   fix_encoding.fix_encoding() | 
| 857   sys.exit(TryChange(None, None, False)) | 846   sys.exit(TryChange(None, None, False)) | 
| OLD | NEW | 
|---|