| Index: android_webview/tools/webview_licenses.py
|
| diff --git a/android_webview/tools/webview_licenses.py b/android_webview/tools/webview_licenses.py
|
| index 8d0963077982207589c088d89fc416751290a66e..3b4e00623e5cc9eec19f663de7238c04a5c39113 100755
|
| --- a/android_webview/tools/webview_licenses.py
|
| +++ b/android_webview/tools/webview_licenses.py
|
| @@ -44,7 +44,10 @@ import known_issues
|
|
|
| class InputApi(object):
|
| def __init__(self):
|
| + self.os_path = os.path
|
| + self.os_walk = os.walk
|
| self.re = re
|
| + self.ReadFile = _ReadFile
|
|
|
| def GetIncompatibleDirectories():
|
| """Gets a list of third-party directories which use licenses incompatible
|
| @@ -99,7 +102,7 @@ class ScanResult(object):
|
| # Needs to be a top-level function for multiprocessing
|
| def _FindCopyrightViolations(files_to_scan_as_string):
|
| return copyright_scanner.FindCopyrightViolations(
|
| - REPOSITORY_ROOT, files_to_scan_as_string)
|
| + InputApi(), REPOSITORY_ROOT, files_to_scan_as_string)
|
|
|
| def _ShardList(l, shard_len):
|
| return [l[i:i + shard_len] for i in range(0, len(l), shard_len)]
|
| @@ -157,7 +160,7 @@ def _CheckLicenseHeaders(excluded_dirs_list, whitelisted_files):
|
| excluded_dirs_list.append('skia/tools/clusterfuzz-data')
|
|
|
| files_to_scan = copyright_scanner.FindFiles(
|
| - REPOSITORY_ROOT, ['.'], excluded_dirs_list)
|
| + InputApi(), REPOSITORY_ROOT, ['.'], excluded_dirs_list)
|
| sharded_files_to_scan = _ShardList(files_to_scan, 2000)
|
| pool = multiprocessing.Pool()
|
| offending_files_chunks = pool.map_async(
|
| @@ -193,7 +196,19 @@ def _CheckLicenseHeaders(excluded_dirs_list, whitelisted_files):
|
| return ScanResult.Ok
|
|
|
|
|
| -def _ReadFile(path):
|
| +def _ReadFile(full_path, mode='rU'):
|
| + """Reads a file from disk. This emulates presubmit InputApi.ReadFile func.
|
| + Args:
|
| + full_path: The path of the file to read.
|
| + Returns:
|
| + The contents of the file as a string.
|
| + """
|
| +
|
| + with open(full_path, mode) as f:
|
| + return f.read()
|
| +
|
| +
|
| +def _ReadLocalFile(path, mode='rb'):
|
| """Reads a file from disk.
|
| Args:
|
| path: The path of the file to read, relative to the root of the repository.
|
| @@ -201,8 +216,7 @@ def _ReadFile(path):
|
| The contents of the file as a string.
|
| """
|
|
|
| - with open(os.path.join(REPOSITORY_ROOT, path), 'rb') as f:
|
| - return f.read()
|
| + return _ReadFile(os.path.join(REPOSITORY_ROOT, path), mode)
|
|
|
|
|
| def _FindThirdPartyDirs():
|
| @@ -262,8 +276,8 @@ def _Scan():
|
| all_licenses_valid = False
|
|
|
| # Second, check for non-standard license text.
|
| - files_data = _ReadFile(os.path.join('android_webview', 'tools',
|
| - 'third_party_files_whitelist.txt'))
|
| + files_data = _ReadLocalFile(os.path.join('android_webview', 'tools',
|
| + 'third_party_files_whitelist.txt'))
|
| whitelisted_files = []
|
| for line in files_data.splitlines():
|
| match = re.match(r'([^#\s]+)', line)
|
| @@ -284,7 +298,7 @@ def GenerateNoticeFile():
|
| third_party_dirs = _FindThirdPartyDirs()
|
|
|
| # Don't forget Chromium's LICENSE file
|
| - content = [_ReadFile('LICENSE')]
|
| + content = [_ReadLocalFile('LICENSE')]
|
|
|
| # We provide attribution for all third-party directories.
|
| # TODO(steveblock): Limit this to only code used by the WebView binary.
|
| @@ -293,7 +307,7 @@ def GenerateNoticeFile():
|
| require_license_file=False)
|
| license_file = metadata['License File']
|
| if license_file and license_file != licenses.NOT_SHIPPED:
|
| - content.append(_ReadFile(license_file))
|
| + content.append(_ReadLocalFile(license_file))
|
|
|
| return '\n'.join(content)
|
|
|
| @@ -344,7 +358,8 @@ def main():
|
| return _ProcessIncompatibleResult(GetIncompatibleDirectories())
|
| elif args[0] == 'display_copyrights':
|
| files = sys.stdin.read().splitlines()
|
| - for f, c in zip(files, copyright_scanner.FindCopyrights('.', files)):
|
| + for f, c in \
|
| + zip(files, copyright_scanner.FindCopyrights(InputApi(), '.', files)):
|
| print f, '\t', ' / '.join(sorted(c))
|
| return ScanResult.Ok
|
| parser.print_help()
|
|
|