| # Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. |
| # |
| # Use of this source code is governed by a BSD-style license |
| # that can be found in the LICENSE file in the root of the source |
| # tree. An additional intellectual property rights grant can be found |
| # in the file PATENTS. All contributing project authors may |
| # be found in the AUTHORS file in the root of the source tree. |
| |
| import os |
| |
| |
| def _LicenseHeader(input_api): |
| """Returns the license header regexp.""" |
| # Accept any year number from 2003 to the current year |
| current_year = int(input_api.time.strftime('%Y')) |
| allowed_years = (str(s) for s in reversed(xrange(2003, current_year + 1))) |
| years_re = '(' + '|'.join(allowed_years) + ')' |
| license_header = ( |
| r'.*? Copyright( \(c\))? %(year)s The WebRTC [Pp]roject [Aa]uthors\. ' |
| r'All [Rr]ights [Rr]eserved\.\n' |
| r'.*?\n' |
| r'.*? Use of this source code is governed by a BSD-style license\n' |
| r'.*? that can be found in the LICENSE file in the root of the source\n' |
| r'.*? tree\. An additional intellectual property rights grant can be ' |
| r'found\n' |
| r'.*? in the file PATENTS\. All contributing project authors may\n' |
| r'.*? be found in the AUTHORS file in the root of the source tree\.\n' |
| ) % { |
| 'year': years_re, |
| } |
| return license_header |
| |
| def _CheckValgrindFiles(input_api, output_api): |
| """Check that valgrind-webrtc.gni contains all existing files.""" |
| valgrind_dir = os.path.join('tools_webrtc', 'valgrind') |
| with open(os.path.join('valgrind', 'valgrind-webrtc.gni')) as f: |
| valgrind_webrtc = f.read() |
| |
| results = [] |
| for f in input_api.AffectedFiles(): |
| f = f.LocalPath() |
| if (f.startswith(valgrind_dir) |
| and f not in valgrind_webrtc |
| and not f.endswith('valgrind-webrtc.gni')): |
| results.append(' * %s\n' % f) |
| |
| if results: |
| results = [output_api.PresubmitError( |
| 'The following files are not listed in ' |
| 'tools_webrtc/valgrind/valgrind-webrt.gni. Please add them, so they can ' |
| 'be isolated and uploaded to swarming:\n' + |
| ''.join(file_path for file_path in results))] |
| return results |
| |
| def _CommonChecks(input_api, output_api): |
| """Checks common to both upload and commit.""" |
| results = [] |
| results.extend(input_api.canned_checks.CheckLicense( |
| input_api, output_api, _LicenseHeader(input_api))) |
| results.extend(_CheckValgrindFiles(input_api, output_api)) |
| return results |
| |
| def CheckChangeOnUpload(input_api, output_api): |
| results = [] |
| results.extend(_CommonChecks(input_api, output_api)) |
| return results |
| |
| def CheckChangeOnCommit(input_api, output_api): |
| results = [] |
| results.extend(_CommonChecks(input_api, output_api)) |
| return results |