aboutsummaryrefslogtreecommitdiffhomepage
path: root/PRESUBMIT.py
diff options
context:
space:
mode:
authorGravatar borenet <borenet@google.com>2015-03-25 04:47:02 -0700
committerGravatar Commit bot <commit-bot@chromium.org>2015-03-25 04:47:02 -0700
commitc7c91806e35da06b13394262d83c169a83f76b1d (patch)
tree3837448815ea3f9c12bbf2b9954923f9268bde30 /PRESUBMIT.py
parent6b9ef90c029c7c783f156ffd6fb1ba047bec63e0 (diff)
Add copyright check to PRESUBMIT
Diffstat (limited to 'PRESUBMIT.py')
-rw-r--r--PRESUBMIT.py20
1 files changed, 20 insertions, 0 deletions
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index ae5a218316..9abe70f727 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -118,6 +118,24 @@ def _IfDefChecks(input_api, output_api):
return results
+def _CopyrightChecks(input_api, output_api, source_file_filter=None):
+ results = []
+ year_pattern = r'\d{4}'
+ year_range_pattern = r'%s(-%s)?' % (year_pattern, year_pattern)
+ years_pattern = r'%s(,%s)*,?' % (year_range_pattern, year_range_pattern)
+ copyright_pattern = (
+ r'Copyright (\([cC]\) )?%s \w+' % years_pattern)
+
+ for affected_file in input_api.AffectedSourceFiles(source_file_filter):
+ if 'third_party' in affected_file.LocalPath():
+ continue
+ contents = input_api.ReadFile(affected_file, 'rb')
+ if not re.search(copyright_pattern, contents):
+ results.append(output_api.PresubmitError(
+ '%s is missing a correct copyright header.' % affected_file))
+ return results
+
+
def _CommonChecks(input_api, output_api):
"""Presubmit checks common to upload and commit."""
results = []
@@ -132,6 +150,8 @@ def _CommonChecks(input_api, output_api):
input_api, output_api, source_file_filter=sources))
results.extend(_PythonChecks(input_api, output_api))
results.extend(_IfDefChecks(input_api, output_api))
+ results.extend(_CopyrightChecks(input_api, output_api,
+ source_file_filter=sources))
return results