OLD | NEW |
(Empty) | |
| 1 # Copyright 2013 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 """Chromium presubmit script for src/net/websockets. |
| 6 |
| 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts |
| 8 for more details on the presubmit API built into gcl. |
| 9 """ |
| 10 |
| 11 |
| 12 # TODO(ricea): Remove this once the old implementation has been removed and the |
| 13 # list of files in the README file is no longer needed. |
| 14 def _CheckReadMeComplete(input_api, output_api): |
| 15 """Verifies that any new files have been added to the README file. |
| 16 |
| 17 Checks that if any source files were added in this CL, that they were |
| 18 also added to the README file. We do not warn about pre-existing |
| 19 errors, as that would be annoying. |
| 20 |
| 21 Args: |
| 22 input_api: The InputApi object provided by the presubmit framework. |
| 23 output_api: The OutputApi object provided by the framework. |
| 24 |
| 25 Returns: |
| 26 A list of zero or more PresubmitPromptWarning objects. |
| 27 """ |
| 28 # None passed to AffectedSourceFiles means "use the default filter", which |
| 29 # does what we want, ie. returns files in the CL with filenames that look like |
| 30 # source code. |
| 31 added_source_filenames = set(input_api.basename(af.LocalPath()) |
| 32 for af in input_api.AffectedSourceFiles(None) |
| 33 if af.Action().startswith('A')) |
| 34 if not added_source_filenames: |
| 35 return [] |
| 36 readme = input_api.AffectedSourceFiles( |
| 37 lambda af: af.LocalPath().endswith('/README')) |
| 38 if not readme: |
| 39 return [output_api.PresubmitPromptWarning( |
| 40 'One or more files were added to net/websockets without being added\n' |
| 41 'to net/websockets/README.\n', added_source_filenames)] |
| 42 readme_added_filenames = set(line.strip() for line in readme[0].NewContents() |
| 43 if line.strip() in added_source_filenames) |
| 44 if readme_added_filenames < added_source_filenames: |
| 45 return [output_api.PresubmitPromptWarning( |
| 46 'One or more files added to net/websockets but not found in the README ' |
| 47 'file.\n', added_source_filenames - readme_added_filenames)] |
| 48 else: |
| 49 return [] |
| 50 |
| 51 |
| 52 def CheckChangeOnUpload(input_api, output_api): |
| 53 return _CheckReadMeComplete(input_api, output_api) |
| 54 |
| 55 |
| 56 def CheckChangeOnCommit(input_api, output_api): |
| 57 return _CheckReadMeComplete(input_api, output_api) |
OLD | NEW |