| # Copyright 2013 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # TODO(joaodasilva): remove this file. http://crbug.com/327345 |
| |
| import itertools |
| |
| def _CheckPolicyProtobufs(input_api, output_api): |
| # List of pairs (A, B) where A should equal B. |
| file_pairs = [ |
| ( 'chrome/browser/policy/proto/chromeos/chrome_device_policy.proto', |
| 'chrome/browser/chromeos/policy/proto/chrome_device_policy.proto' ), |
| ( 'chrome/browser/policy/proto/chromeos/install_attributes.proto', |
| 'chrome/browser/chromeos/policy/proto/install_attributes.proto' ), |
| ( 'chrome/browser/policy/proto/cloud/chrome_extension_policy.proto', |
| 'components/policy/proto/chrome_extension_policy.proto' ), |
| ( 'chrome/browser/policy/proto/cloud/device_management_backend.proto', |
| 'components/policy/proto/device_management_backend.proto' ), |
| ( 'chrome/browser/policy/proto/cloud/device_management_local.proto', |
| 'components/policy/proto/device_management_local.proto' ), |
| ( 'chrome/browser/policy/proto/PRESUBMIT.py', |
| 'components/policy/proto/PRESUBMIT.py' ), |
| ( 'chrome/browser/chromeos/policy/proto/PRESUBMIT.py', |
| 'components/policy/proto/PRESUBMIT.py' ), |
| ] |
| |
| root = input_api.change.RepositoryRoot() |
| results = [] |
| |
| for file_a, file_b in file_pairs: |
| path_a = input_api.os_path.join(root, *file_a.split('/')) |
| path_b = input_api.os_path.join(root, *file_b.split('/')) |
| with open(path_a, 'r') as f_a: |
| content_a = f_a.readlines()[3:] |
| with open(path_b, 'r') as f_b: |
| content_b = f_b.readlines()[3:] |
| if content_a != content_b: |
| # If you get this error then check |file_pairs| and make sure that the |
| # contents of the files in each pair match. |
| results.append(output_api.PresubmitError( |
| '%s must equal %s. This is temporary until http://crbug.com/327345 ' |
| 'is fixed.' % (file_a, file_b))) |
| |
| # If new files are added then |file_pairs| must be updated. |
| existing = frozenset(itertools.chain(*file_pairs)) |
| for f in input_api.AffectedFiles(): |
| if f.LocalPath() not in existing: |
| # If you get this error then add an entry for the new files to |
| # |file_pairs|. |
| results.append(output_api.PresubmitError( |
| 'Please add an entry for %s to %s/PRESUBMIT.py' % |
| (f.LocalPath(), input_api.PresubmitLocalPath()))) |
| |
| return results |
| |
| |
| def _CommonChecks(input_api, output_api): |
| return _CheckPolicyProtobufs(input_api, output_api) |
| |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| return _CommonChecks(input_api, output_api) |
| |
| |
| def CheckChangeOnCommit(input_api, output_api): |
| return _CommonChecks(input_api, output_api) |