diff options
author | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-31 21:23:32 +0000 |
---|---|---|
committer | mkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-31 21:23:32 +0000 |
commit | c0efbf772fd2054d27888dcc743465a0631b4296 (patch) | |
tree | 952b08b06bf92671c6d9019765f3cfa32d5551ce /android_webview/tools | |
parent | bd2dc6a7d7cc08b49004ea79d2e0193ff248d9a2 (diff) | |
download | chromium_src-c0efbf772fd2054d27888dcc743465a0631b4296.zip chromium_src-c0efbf772fd2054d27888dcc743465a0631b4296.tar.gz chromium_src-c0efbf772fd2054d27888dcc743465a0631b4296.tar.bz2 |
[android_webview] Exclude known incompatible code from check.
The AOSP bot doesn't delete incompatibly licensed code from the main
Chromium src/ directory which means the check that we run there should
ignore the folders from the KNOWN_INCOMPATIBLE list.
BUG=329540
Review URL: https://codereview.chromium.org/147293005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@248270 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'android_webview/tools')
-rwxr-xr-x | android_webview/tools/webview_licenses.py | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/android_webview/tools/webview_licenses.py b/android_webview/tools/webview_licenses.py index 52d33dc..e279051 100755 --- a/android_webview/tools/webview_licenses.py +++ b/android_webview/tools/webview_licenses.py @@ -16,6 +16,7 @@ which whitelists indicidual files which contain third-party code but which aren't in a third-party directory with a README.chromium file. """ +import glob import optparse import os import re @@ -34,7 +35,7 @@ import known_issues def GetIncompatibleDirectories(): """Gets a list of third-party directories which use licenses incompatible - with Android. This is used by the snapshot tool and the AOSP bot. + with Android. This is used by the snapshot tool. Returns: A list of directories. """ @@ -76,6 +77,28 @@ def GetIncompatibleDirectories(): break return result +def GetUnknownIncompatibleDirectories(): + """Gets a list of third-party directories which use licenses incompatible + with Android which are not present in the known_issues.py file. + This is used by the AOSP bot. + Returns: + A list of directories. + """ + incompatible_directories = frozenset(GetIncompatibleDirectories()) + known_incompatible = [] + for path, exclude_list in known_issues.KNOWN_INCOMPATIBLE.iteritems(): + for exclude in exclude_list: + if glob.has_magic(exclude): + exclude_dirname = os.path.dirname(exclude) + if glob.has_magic(exclude_dirname): + print ('Exclude path %s contains an unexpected glob expression,' \ + ' skipping.' % exclude) + exclude = exclude_dirname + known_incompatible.append(os.path.normpath(os.path.join(path, exclude))) + known_incompatible = frozenset(known_incompatible) + return incompatible_directories.difference(known_incompatible) + + class ScanResult(object): Ok, Warnings, Errors = range(3) @@ -301,7 +324,7 @@ def main(): print GenerateNoticeFile() return ScanResult.Ok elif args[0] == 'incompatible_directories': - incompatible_directories = GetIncompatibleDirectories() + incompatible_directories = GetUnknownIncompatibleDirectories() if incompatible_directories: print ("Incompatibly licensed directories found:\n" + "\n".join(sorted(incompatible_directories))) |