Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(66)

Side by Side Diff: PRESUBMIT.py

Issue 13325002: Display prompt for caution only if it is an interactive shell (Closed) Base URL: http://skia.googlecode.com/svn/trunk/
Patch Set: Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 5
6 """Top-level presubmit script for Skia. 6 """Top-level presubmit script for Skia.
7 7
8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts 8 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts
9 for more details about the presubmit API built into gcl. 9 for more details about the presubmit API built into gcl.
10 """ 10 """
11 11
12 import os
13 import sys
14
12 15
13 def _CheckChangeHasEol(input_api, output_api, source_file_filter=None): 16 def _CheckChangeHasEol(input_api, output_api, source_file_filter=None):
14 """Checks that files end with atleast one \n (LF).""" 17 """Checks that files end with atleast one \n (LF)."""
15 eof_files = [] 18 eof_files = []
16 for f in input_api.AffectedSourceFiles(source_file_filter): 19 for f in input_api.AffectedSourceFiles(source_file_filter):
17 contents = input_api.ReadFile(f, 'rb') 20 contents = input_api.ReadFile(f, 'rb')
18 # Check that the file ends in atleast one newline character. 21 # Check that the file ends in atleast one newline character.
19 if len(contents) > 1 and contents[-1:] != '\n': 22 if len(contents) > 1 and contents[-1:] != '\n':
20 eof_files.append(f.LocalPath()) 23 eof_files.append(f.LocalPath())
21 24
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 output_api: output related apis. 63 output_api: output related apis.
61 json_url: url to download json style status. 64 json_url: url to download json style status.
62 """ 65 """
63 tree_status_results = input_api.canned_checks.CheckTreeIsOpen( 66 tree_status_results = input_api.canned_checks.CheckTreeIsOpen(
64 input_api, output_api, json_url=json_url) 67 input_api, output_api, json_url=json_url)
65 if not tree_status_results: 68 if not tree_status_results:
66 # Check for caution state only if tree is not closed. 69 # Check for caution state only if tree is not closed.
67 connection = input_api.urllib2.urlopen(json_url) 70 connection = input_api.urllib2.urlopen(json_url)
68 status = input_api.json.loads(connection.read()) 71 status = input_api.json.loads(connection.read())
69 connection.close() 72 connection.close()
70 if 'caution' in status['message'].lower(): 73 if ('caution' in status['message'].lower() and
74 os.isatty(sys.stdout.fileno())):
75 # Display a prompt only if we are in an interactive shell. Without this
76 # check the commit queue behaves incorrectly because it considers
77 # prompts to be failures.
71 short_text = 'Tree state is: ' + status['general_state'] 78 short_text = 'Tree state is: ' + status['general_state']
72 long_text = status['message'] + '\n' + json_url 79 long_text = status['message'] + '\n' + json_url
73 tree_status_results.append( 80 tree_status_results.append(
74 output_api.PresubmitPromptWarning( 81 output_api.PresubmitPromptWarning(
75 message=short_text, long_text=long_text)) 82 message=short_text, long_text=long_text))
76 return tree_status_results 83 return tree_status_results
77 84
78 85
79 def CheckChangeOnCommit(input_api, output_api): 86 def CheckChangeOnCommit(input_api, output_api):
80 """Presubmit checks for the change on commit. 87 """Presubmit checks for the change on commit.
81 88
82 The following are the presubmit checks: 89 The following are the presubmit checks:
83 * Check change has one and only one EOL. 90 * Check change has one and only one EOL.
84 * Ensures that the Skia tree is open in 91 * Ensures that the Skia tree is open in
85 http://skia-tree-status.appspot.com/. Shows a warning if it is in 'Caution' 92 http://skia-tree-status.appspot.com/. Shows a warning if it is in 'Caution'
86 state and an error if it is in 'Closed' state. 93 state and an error if it is in 'Closed' state.
87 """ 94 """
88 results = [] 95 results = []
89 results.extend(_CommonChecks(input_api, output_api)) 96 results.extend(_CommonChecks(input_api, output_api))
90 results.extend( 97 results.extend(
91 _CheckTreeStatus(input_api, output_api, json_url=( 98 _CheckTreeStatus(input_api, output_api, json_url=(
92 'http://skia-tree-status.appspot.com/banner-status?format=json'))) 99 'http://skia-tree-status.appspot.com/banner-status?format=json')))
93 return results 100 return results
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698