| OLD | NEW |
| (Empty) |
| 1 # Copyright 2014 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 third_party/polymer. | |
| 6 | |
| 7 See http://dev.chromium.org/developers/how-tos/depottools/presubmit-scripts | |
| 8 for more details on the presubmit API built into depot_tools. | |
| 9 """ | |
| 10 | |
| 11 import os | |
| 12 import json | |
| 13 | |
| 14 def _CheckBowerDependencies(input_api, output_api): | |
| 15 os_path = input_api.os_path | |
| 16 cwd = input_api.PresubmitLocalPath() | |
| 17 components_dir = os_path.join(cwd, 'components') | |
| 18 bower_json_path = os_path.join(cwd, 'bower.json') | |
| 19 | |
| 20 for f in input_api.AffectedFiles(include_dirs=True): | |
| 21 p = f.AbsoluteLocalPath() | |
| 22 if p == bower_json_path or p.startswith(components_dir): | |
| 23 break | |
| 24 else: | |
| 25 return [] | |
| 26 | |
| 27 bower_dependencies = \ | |
| 28 set(json.load(open(bower_json_path))['dependencies'].keys()) | |
| 29 installed_components = set(p for p in os.listdir(components_dir)) | |
| 30 # Add web-animations-js because we keep it in a separate directory | |
| 31 # '../third_party/web-animations-js'. | |
| 32 installed_components.add('web-animations-js') | |
| 33 | |
| 34 if bower_dependencies == installed_components: | |
| 35 return [] | |
| 36 | |
| 37 problems = [] | |
| 38 | |
| 39 if installed_components - bower_dependencies: | |
| 40 problems.append(output_api.PresubmitError( | |
| 41 'Found components that are not listed in bower.json.', | |
| 42 items = list(installed_components - bower_dependencies))) | |
| 43 | |
| 44 if bower_dependencies - installed_components: | |
| 45 problems.append(output_api.PresubmitError( | |
| 46 'Some of the Bower dependencies are not installed.', | |
| 47 items = list(bower_dependencies - installed_components))) | |
| 48 | |
| 49 return problems | |
| 50 | |
| 51 def CheckChangeOnUpload(input_api, output_api): | |
| 52 return _CheckBowerDependencies(input_api, output_api) | |
| 53 | |
| 54 | |
| 55 def CheckChangeOnCommit(input_api, output_api): | |
| 56 return _CheckBowerDependencies(input_api, output_api) | |
| OLD | NEW |