Index: chrome/browser/policy/proto/PRESUBMIT.py |
diff --git a/chrome/browser/policy/proto/PRESUBMIT.py b/chrome/browser/policy/proto/PRESUBMIT.py |
new file mode 100644 |
index 0000000000000000000000000000000000000000..406e24fcf9d1080c73e0b09e151a784b58d1aa3b |
--- /dev/null |
+++ b/chrome/browser/policy/proto/PRESUBMIT.py |
@@ -0,0 +1,67 @@ |
+# 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.read() |
+ with open(path_b, 'r') as f_b: |
+ content_b = f_b.read() |
+ 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) |