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

Side by Side Diff: tools/checklicenses/checklicenses.py

Issue 7979030: Make it easier to remove path-specific whitelist entries (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 9 years, 3 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 #!/usr/bin/python 1 #!/usr/bin/python
2 # Copyright (c) 2011 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2011 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Makes sure that all files contain proper licensing information.""" 6 """Makes sure that all files contain proper licensing information."""
7 7
8 8
9 import optparse 9 import optparse
10 import os.path 10 import os.path
11 import subprocess 11 import subprocess
12 import sys 12 import sys
13 13
14 14
15 def PrintUsage(): 15 def PrintUsage():
16 print """Usage: python checklicenses.py [--root <root>] [tocheck] 16 print """Usage: python checklicenses.py [--root <root>] [tocheck]
17 --root Specifies the repository root. This defaults to "../.." relative 17 --root Specifies the repository root. This defaults to "../.." relative
18 to the script file. This will be correct given the normal location 18 to the script file. This will be correct given the normal location
19 of the script in "<root>/tools/checklicenses". 19 of the script in "<root>/tools/checklicenses".
20 20
21 --ignore-suppressions Ignores path-specific license whitelist. Useful when
22 trying to remove a suppression/whitelist entry.
23
21 tocheck Specifies the directory, relative to root, to check. This defaults 24 tocheck Specifies the directory, relative to root, to check. This defaults
22 to "." so it checks everything. 25 to "." so it checks everything.
23 26
24 Examples: 27 Examples:
25 python checklicenses.py 28 python checklicenses.py
26 python checklicenses.py --root ~/chromium/src third_party""" 29 python checklicenses.py --root ~/chromium/src third_party"""
27 30
28 31
29 WHITELISTED_LICENSES = [ 32 WHITELISTED_LICENSES = [
30 'Apache (v2.0)', 33 'Apache (v2.0)',
(...skipping 456 matching lines...) Expand 10 before | Expand all | Expand 10 after
487 # For now we're just interested in the license. 490 # For now we're just interested in the license.
488 license = license.replace('*No copyright*', '').strip() 491 license = license.replace('*No copyright*', '').strip()
489 492
490 # Skip generated files. 493 # Skip generated files.
491 if 'GENERATED FILE' in license: 494 if 'GENERATED FILE' in license:
492 continue 495 continue
493 496
494 if license in WHITELISTED_LICENSES: 497 if license in WHITELISTED_LICENSES:
495 continue 498 continue
496 499
497 found_path_specific = False 500 if not options.ignore_suppressions:
498 for prefix in PATH_SPECIFIC_WHITELISTED_LICENSES: 501 found_path_specific = False
499 if (filename.startswith(prefix) and 502 for prefix in PATH_SPECIFIC_WHITELISTED_LICENSES:
500 license in PATH_SPECIFIC_WHITELISTED_LICENSES[prefix]): 503 if (filename.startswith(prefix) and
504 license in PATH_SPECIFIC_WHITELISTED_LICENSES[prefix]):
501 found_path_specific = True 505 found_path_specific = True
502 break 506 break
503 if found_path_specific: 507 if found_path_specific:
504 continue 508 continue
505 509
506 print "'%s' has non-whitelisted license '%s'" % (filename, license) 510 print "'%s' has non-whitelisted license '%s'" % (filename, license)
507 success = False 511 success = False
508 512
509 if success: 513 if success:
510 print "\nSUCCESS\n" 514 print "\nSUCCESS\n"
511 sys.exit(0) 515 sys.exit(0)
512 else: 516 else:
513 print "\nFAILED\n" 517 print "\nFAILED\n"
514 print "Please read", 518 print "Please read",
(...skipping 10 matching lines...) Expand all
525 default_root = os.path.abspath( 529 default_root = os.path.abspath(
526 os.path.join(os.path.dirname(__file__), '..', '..')) 530 os.path.join(os.path.dirname(__file__), '..', '..'))
527 option_parser = optparse.OptionParser() 531 option_parser = optparse.OptionParser()
528 option_parser.add_option('--root', default=default_root, 532 option_parser.add_option('--root', default=default_root,
529 dest='base_directory', 533 dest='base_directory',
530 help='Specifies the repository root. This defaults ' 534 help='Specifies the repository root. This defaults '
531 'to "../.." relative to the script file, which ' 535 'to "../.." relative to the script file, which '
532 'will normally be the repository root.') 536 'will normally be the repository root.')
533 option_parser.add_option('-v', '--verbose', action='store_true', 537 option_parser.add_option('-v', '--verbose', action='store_true',
534 default=False, help='Print debug logging') 538 default=False, help='Print debug logging')
539 option_parser.add_option('--ignore-suppressions',
540 action='store_true',
541 default=False,
542 help='Ignore path-specific license whitelist.')
535 options, args = option_parser.parse_args() 543 options, args = option_parser.parse_args()
536 main(options, args) 544 main(options, args)
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698