OLD | NEW |
1 # Copyright (C) 2014 Google Inc. All rights reserved. | 1 # Copyright (C) 2014 Google Inc. All rights reserved. |
2 # | 2 # |
3 # Redistribution and use in source and binary forms, with or without | 3 # Redistribution and use in source and binary forms, with or without |
4 # modification, are permitted provided that the following conditions are | 4 # modification, are permitted provided that the following conditions are |
5 # met: | 5 # met: |
6 # | 6 # |
7 # * Redistributions of source code must retain the above copyright | 7 # * Redistributions of source code must retain the above copyright |
8 # notice, this list of conditions and the following disclaimer. | 8 # notice, this list of conditions and the following disclaimer. |
9 # * Redistributions in binary form must reproduce the above | 9 # * Redistributions in binary form must reproduce the above |
10 # copyright notice, this list of conditions and the following disclaimer | 10 # copyright notice, this list of conditions and the following disclaimer |
(...skipping 16 matching lines...) Expand all Loading... |
27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 27 # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
28 """DevTools JSDoc validator presubmit script | 28 """DevTools JSDoc validator presubmit script |
29 | 29 |
30 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts | 30 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
31 for more details about the presubmit API built into gcl. | 31 for more details about the presubmit API built into gcl. |
32 """ | 32 """ |
33 | 33 |
34 from collections import namedtuple | 34 from collections import namedtuple |
35 import sys | 35 import sys |
36 | 36 |
37 compile_note = "Be sure to run your patch by the compile_frontend.py script prio
r to committing!" | |
38 | |
39 CheckOutput = namedtuple('CheckOutput', ['results', 'has_errors']) | 37 CheckOutput = namedtuple('CheckOutput', ['results', 'has_errors']) |
40 | 38 |
41 | 39 |
42 def _CheckNodeAndNPMModules(input_api, output_api): | 40 def _CheckNodeAndNPMModules(input_api, output_api): |
43 node_script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "s
cripts", "install_node_deps.py") | 41 node_script_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "s
cripts", "install_node_deps.py") |
44 process = input_api.subprocess.Popen( | 42 process = input_api.subprocess.Popen( |
45 [input_api.python_executable, node_script_path], stdout=input_api.subpro
cess.PIPE, stderr=input_api.subprocess.STDOUT) | 43 [input_api.python_executable, node_script_path], stdout=input_api.subpro
cess.PIPE, stderr=input_api.subprocess.STDOUT) |
46 out, _ = process.communicate() | 44 out, _ = process.communicate() |
47 if process.returncode != 0: | 45 if process.returncode != 0: |
48 return CheckOutput([output_api.PresubmitError(out)], has_errors=True) | 46 return CheckOutput([output_api.PresubmitError(out)], has_errors=True) |
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 stdout=input_api.subprocess.PIPE, | 103 stdout=input_api.subprocess.PIPE, |
106 stderr=input_api.subprocess.STDOUT) | 104 stderr=input_api.subprocess.STDOUT) |
107 out, _ = process.communicate() | 105 out, _ = process.communicate() |
108 if process.returncode != 0: | 106 if process.returncode != 0: |
109 return [output_api.PresubmitError(out)] | 107 return [output_api.PresubmitError(out)] |
110 return [output_api.PresubmitNotifyResult(out)] | 108 return [output_api.PresubmitNotifyResult(out)] |
111 return [] | 109 return [] |
112 | 110 |
113 | 111 |
114 def _CompileDevtoolsFrontend(input_api, output_api): | 112 def _CompileDevtoolsFrontend(input_api, output_api): |
115 local_paths = [f.LocalPath() for f in input_api.AffectedFiles()] | 113 compile_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "scrip
ts", "compile_frontend.py") |
116 | 114 out, _ = input_api.subprocess.Popen( |
117 # FIXME: The compilation does not actually run if injected script-related fi
les | 115 [input_api.python_executable, compile_path], stdout=input_api.subprocess
.PIPE, |
118 # have changed, as they reside in core/inspector, which is not affected | 116 stderr=input_api.subprocess.STDOUT).communicate() |
119 # by this presubmit. | 117 if "ERROR" in out or "WARNING" in out: |
120 # Once this is fixed, injected_script_externs.js | 118 return [output_api.PresubmitError(out)] |
121 # should be added to the list of triggers. | 119 if "NOTE" in out: |
122 devtools_front_end = input_api.os_path.join("devtools", "front_end") | 120 return [output_api.PresubmitPromptWarning(out)] |
123 if (any(devtools_front_end in path for path in local_paths) or any("_protoco
l.json" in path for path in local_paths) or | |
124 any("compile_frontend.py" in path for path in local_paths) or any("I
njectedScriptSource.js" in path | |
125 fo
r path in local_paths) or | |
126 any("DebuggerScript.js" in path for path in local_paths)): | |
127 lint_path = input_api.os_path.join(input_api.PresubmitLocalPath(), "scri
pts", "compile_frontend.py") | |
128 out, _ = input_api.subprocess.Popen( | |
129 [input_api.python_executable, lint_path], stdout=input_api.subproces
s.PIPE, | |
130 stderr=input_api.subprocess.STDOUT).communicate() | |
131 if "ERROR" in out or "WARNING" in out: | |
132 return [output_api.PresubmitError(out)] | |
133 if "NOTE" in out: | |
134 return [output_api.PresubmitPromptWarning(out + compile_note)] | |
135 return [] | 121 return [] |
136 | 122 |
137 | 123 |
138 def _CheckConvertSVGToPNGHashes(input_api, output_api): | 124 def _CheckConvertSVGToPNGHashes(input_api, output_api): |
139 if not input_api.platform.startswith('linux'): | 125 if not input_api.platform.startswith('linux'): |
140 return [] | 126 return [] |
141 | 127 |
142 original_sys_path = sys.path | 128 original_sys_path = sys.path |
143 try: | 129 try: |
144 sys.path = sys.path + [input_api.os_path.join(input_api.PresubmitLocalPa
th(), 'scripts', 'build')] | 130 sys.path = sys.path + [input_api.os_path.join(input_api.PresubmitLocalPa
th(), 'scripts', 'build')] |
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
244 devtools_scripts = input_api.os_path.join(devtools_root, "scripts") | 230 devtools_scripts = input_api.os_path.join(devtools_root, "scripts") |
245 affected_js_files = [ | 231 affected_js_files = [ |
246 file_name for file_name in local_paths | 232 file_name for file_name in local_paths |
247 if (devtools_front_end in file_name or devtools_scripts in file_name) an
d file_name.endswith(".js") | 233 if (devtools_front_end in file_name or devtools_scripts in file_name) an
d file_name.endswith(".js") |
248 ] | 234 ] |
249 return [input_api.os_path.relpath(file_name, devtools_root) for file_name in
affected_js_files] | 235 return [input_api.os_path.relpath(file_name, devtools_root) for file_name in
affected_js_files] |
250 | 236 |
251 | 237 |
252 def _inputPopen(input_api, args): | 238 def _inputPopen(input_api, args): |
253 return input_api.subprocess.Popen(args, stdout=input_api.subprocess.PIPE, st
derr=input_api.subprocess.STDOUT) | 239 return input_api.subprocess.Popen(args, stdout=input_api.subprocess.PIPE, st
derr=input_api.subprocess.STDOUT) |
OLD | NEW |