OLD | NEW |
---|---|
(Empty) | |
1 # Copyright 2016 The Chromium Authors. All rights reserved. | |
2 # Use of this source code is governed by a BSD-style license that can be | |
3 # found in the LICENSE file. | |
4 | |
5 class ExternsChecker(object): | |
6 _COMMAND_TEMPLATE = str('src/ $ python tools/json_schema_compiler/compiler.py' | |
7 ' %s --root=. --generator=externs > %s') | |
Dan Beam
2016/02/23 23:26:17
why can't we combine the strings in _GetWarningTex
Devlin
2016/02/24 00:05:06
Done.
| |
8 | |
9 def __init__(self, input_api, output_api, api_pairs): | |
10 self._api_pairs = api_pairs | |
Dan Beam
2016/02/23 23:26:17
why are you initializing members in a different or
Devlin
2016/02/24 00:05:06
Didn't even notice. Done.
| |
11 self._input_api = input_api | |
12 self._output_api = output_api | |
13 | |
14 def _GetCommand(self, source, dest): | |
15 return self._COMMAND_TEMPLATE % (source, dest) | |
16 | |
17 def _GetWarningText(self, entries): | |
18 if len(entries) == 1: | |
19 return str('To update the externs, run "%s"' % | |
20 self._GetCommand(entries[0]['source'], | |
21 entries[0]['extern'])) | |
22 return str('To update the externs, run "%s"' % | |
23 self._GetCommand('<source_file>', '<output_file>')) | |
Dan Beam
2016/02/23 23:26:17
# or source, dest = ... if you want
replacements
Devlin
2016/02/24 00:05:06
Done.
| |
24 | |
25 def RunChecks(self): | |
26 bad_files = [] | |
27 affected = [f.AbsoluteLocalPath() for f in self._input_api.AffectedFiles()] | |
28 for path in affected: | |
29 pair = self._api_pairs.get(path) | |
30 if pair != None and pair not in affected: | |
31 bad_files.append({'source': path, 'extern': pair}) | |
32 results = [] | |
33 if bad_files: | |
34 results.append(self._output_api.PresubmitPromptWarning( | |
35 str('Found updated extension api files without updated extern files. ' | |
36 'Please update the extern files.'), | |
37 [f['source'] for f in bad_files], | |
38 self._GetWarningText(bad_files))) | |
39 return results | |
OLD | NEW |