# 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)