diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 16:20:30 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-06-05 16:20:30 +0000 |
commit | 1916850a4f64ef9bfc255ac4b255113b4c54e235 (patch) | |
tree | 5595021fa1e2e4c30c22876ad9a37102f9944c20 /tools/checklicenses | |
parent | bb4beca1f21e2386f9cb459dca11433c7f78c1e4 (diff) | |
download | chromium_src-1916850a4f64ef9bfc255ac4b255113b4c54e235.zip chromium_src-1916850a4f64ef9bfc255ac4b255113b4c54e235.tar.gz chromium_src-1916850a4f64ef9bfc255ac4b255113b4c54e235.tar.bz2 |
Add support for JSON output to checklicenses.py
BUG=128664
R=maruel@chromium.org
Review URL: https://codereview.chromium.org/311353002
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@275147 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'tools/checklicenses')
-rwxr-xr-x | tools/checklicenses/checklicenses.py | 37 |
1 files changed, 23 insertions, 14 deletions
diff --git a/tools/checklicenses/checklicenses.py b/tools/checklicenses/checklicenses.py index f037d8b..c657eff 100755 --- a/tools/checklicenses/checklicenses.py +++ b/tools/checklicenses/checklicenses.py @@ -6,6 +6,7 @@ """Makes sure that all files contain proper licensing information.""" +import json import optparse import os.path import subprocess @@ -422,8 +423,8 @@ def check_licenses(options, args): return 1 used_suppressions = set() + errors = [] - success = True for line in stdout.splitlines(): filename, license = line.split(':', 1) filename = os.path.relpath(filename.strip(), options.base_directory) @@ -452,21 +453,16 @@ def check_licenses(options, args): used_suppressions.update(set(matched_prefixes)) continue - print "'%s' has non-whitelisted license '%s'" % (filename, license) - success = False + errors.append({'filename': filename, 'license': license}) - if success: - print "\nSUCCESS\n" + if options.json: + with open(options.json, 'w') as f: + json.dump(errors, f) - if not len(args): - unused_suppressions = set( - PATH_SPECIFIC_WHITELISTED_LICENSES.keys()).difference(used_suppressions) - if unused_suppressions: - print "\nNOTE: unused suppressions detected:\n" - print '\n'.join(unused_suppressions) - - return 0 - else: + if errors: + for error in errors: + print "'%s' has non-whitelisted license '%s'" % ( + error['filename'], error['license']) print "\nFAILED\n" print "Please read", print "http://www.chromium.org/developers/adding-3rd-party-libraries" @@ -481,6 +477,18 @@ def check_licenses(options, args): return 1 + print "\nSUCCESS\n" + + if not len(args): + unused_suppressions = set( + PATH_SPECIFIC_WHITELISTED_LICENSES.iterkeys()).difference( + used_suppressions) + if unused_suppressions: + print "\nNOTE: unused suppressions detected:\n" + print '\n'.join(unused_suppressions) + + return 0 + def main(): default_root = os.path.abspath( @@ -497,6 +505,7 @@ def main(): action='store_true', default=False, help='Ignore path-specific license whitelist.') + option_parser.add_option('--json', help='Path to JSON output file') options, args = option_parser.parse_args() return check_licenses(options, args) |