Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1564)

Unified Diff: android_webview/tools/webview_licenses.py

Issue 12047113: Make webview_licenses.py script to use licensecheck.pl (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small cleanups Created 7 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: android_webview/tools/webview_licenses.py
diff --git a/android_webview/tools/webview_licenses.py b/android_webview/tools/webview_licenses.py
index 0d2a7af9186baf90181f2f400cf369eee396d85b..a914b41c88d5b5a3781dca1ca5c81ad78d4c7c59 100755
--- a/android_webview/tools/webview_licenses.py
+++ b/android_webview/tools/webview_licenses.py
@@ -86,64 +86,45 @@ def _CheckLicenseHeaders(directory_list, whitelisted_files):
whitelist contains no stale entries, otherwise false.
"""
- # Matches one of ...
- # - '[Cc]opyright', but not when followed by
- # ' 20[0-9][0-9] The Chromium Authors.', with optional (c) and date range
- # - '([Cc]) (19|20)[0-9][0-9]', but not when preceeded by the word copyright,
- # as this is handled above
- regex = '[Cc]opyright(?!( \(c\))? 20[0-9][0-9](-20[0-9][0-9])? ' \
- 'The Chromium Authors\. All rights reserved\.)' \
- '|' \
- '(?<!(pyright |opyright))\([Cc]\) (19|20)[0-9][0-9]'
-
- args = ['grep',
- '-rPlI',
- '--exclude', '*.orig',
- '--exclude', '*.rej',
- '--exclude-dir', 'third_party',
- '--exclude-dir', 'out',
- '--exclude-dir', '.git',
- '--exclude-dir', '.svn',
- regex,
+ directory_list = [d for d in directory_list if not 'third_party' in d]
+ # This makes the ignore regexp shorter
+ directory_list.append('third_party')
+ # 'Copyright' appears in license agreements
+ directory_list.append('chrome/app/resources')
+ # Arm sysroot tools, doesn't exist in the snapshot
+ directory_list.append('arm-sysroot')
+
+ ignore_patterns = []
+ for d in directory_list:
+ ignore_patterns.append('(?:/' + d.replace('+', '\+') + '/)')
+
+ args = ['third_party/devscripts/licensecheck.pl',
+ '--lines', '99',
+ '--copyright',
+ '--machine',
+ '--recursive',
+ '--check', '\.(c(c|pp|xx)?|h(h|pp|xx)?|p(l|m)|xs|sh|php|py(|x)|rb' \
Paweł Hajdan Jr. 2013/01/25 17:54:33 Do you need to use --check? Why?
mnaganov (inactive) 2013/01/28 14:51:54 Because the pattern in licensecheck.pl apparently
Paweł Hajdan Jr. 2013/01/28 16:28:29 Why not update the pattern in licensecheck.pl then
mnaganov (inactive) 2013/01/28 17:12:38 I was considering these additions to be Chromium-s
+ '|java|vala|el|sc(i|e)|cs|pas|inc|dtd|xsl|mod|m|tex|mli?|js|html' \
+ '|pac|mm|asm|idl)$',
+ '--ignore', '|'.join(ignore_patterns),
'.']
p = subprocess.Popen(args=args, cwd=REPOSITORY_ROOT, stdout=subprocess.PIPE)
- files = p.communicate()[0].splitlines()
-
- directory_list = directory_list[:]
- # Ignore these tools.
- directory_list.append('android_webview/tools/')
- # This is a build intermediate directory.
- directory_list.append('chrome/app/theme/google_chrome/')
- # This is tests directory, doesn't exist in the snapshot
- directory_list.append('content/test/data/')
- # This is a test output directory.
- directory_list.append('data/dom_perf/')
- # This is a test output directory.
- directory_list.append('data/page_cycler/')
- # 'Copyright' appears in strings.
- directory_list.append('chrome/app/resources/')
- # This is a Chrome on Linux reference build, doesn't exist in the snapshot
- directory_list.append('chrome/tools/test/reference_build/chrome_linux/')
- # Remoting internal tools, doesn't exist in the snapshot
- directory_list.append('remoting/appengine/')
- # Histogram tools, doesn't exist in the snapshot
- directory_list.append('tools/histograms/')
- # Arm sysroot tools, doesn't exist in the snapshot
- directory_list.append('arm-sysroot/')
- # Windows-only
- directory_list.append('tools/win/toolchain/7z/')
+ lines = p.communicate()[0].splitlines()
- # Exclude files under listed directories and some known offenders.
offending_files = []
- for x in files:
- x = os.path.normpath(x)
- is_in_listed_directory = False
- for y in directory_list:
- if x.startswith(y):
- is_in_listed_directory = True
+ allowed_copyrights = '^(?:\*No copyright\*' \
+ '|20[0-9][0-9](?:-20[0-9][0-9])? The Chromium Authors\. ' \
+ 'All rights reserved.*)$'
+ allowed_copyrights_re = re.compile(allowed_copyrights)
+ for l in lines:
+ entries = l.split('\t')
+ if entries[1] == "GENERATED FILE":
+ continue
+ copyrights = entries[2].split(' / ')
+ for c in copyrights:
+ if c and not allowed_copyrights_re.match(c):
+ offending_files.append(os.path.normpath(entries[0]))
break
- if not is_in_listed_directory:
- offending_files.append(x)
all_files_valid = True
unknown = set(offending_files) - set(whitelisted_files)

Powered by Google App Engine
This is Rietveld 408576698