summaryrefslogtreecommitdiffstats
path: root/android_webview/tools
diff options
context:
space:
mode:
authormkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-31 21:23:32 +0000
committermkosiba@chromium.org <mkosiba@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-31 21:23:32 +0000
commitc0efbf772fd2054d27888dcc743465a0631b4296 (patch)
tree952b08b06bf92671c6d9019765f3cfa32d5551ce /android_webview/tools
parentbd2dc6a7d7cc08b49004ea79d2e0193ff248d9a2 (diff)
downloadchromium_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-xandroid_webview/tools/webview_licenses.py27
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)))