Mercurial > mozilla > hg > licenser
annotate licenser/main.py @ 1:cc5add25bf83
abstract License to its own class and do the work there
author | Jeff Hammel <jhammel@mozilla.com> |
---|---|
date | Mon, 10 May 2010 11:24:02 -0700 |
parents | b0665b243ccd |
children | b8d620fa1116 |
rev | line source |
---|---|
0 | 1 #!/usr/bin/env python |
2 """ | |
3 adds licenses to python packages | |
4 """ | |
5 | |
6 import os | |
7 import sys | |
8 from optparse import OptionParser | |
9 from pkg_resources import iter_entry_points | |
10 | |
11 def license_list(debug=False): | |
12 licenses = {} | |
1
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
13 for entry_point in iter_entry_points('licenser.license'): |
0 | 14 try: |
15 license = entry_point.load() | |
1
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
16 except Exception, e: |
0 | 17 if debug: |
18 import pdb; pdb.set_trace() | |
19 else: | |
1
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
20 print >> sys.stderr, "Couldn't load license '%s' [%s]" % (entry_point.name, e) |
0 | 21 continue |
22 licenses[entry_point.name] = license | |
23 return licenses | |
24 | |
25 | |
26 def main(args=sys.argv[1:]): | |
27 usage = '%prog [options] directory' | |
28 parser = OptionParser(usage, description=__doc__) | |
1
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
29 parser.add_option('-d', '--debug', action='store_true', default=False, |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
30 help="debug the application") |
0 | 31 parser.add_option('-l', '--license', |
32 help="license to use") | |
33 parser.add_option('--list', action='store_true', default=False, | |
34 help="list available licenses") | |
35 options, args = parser.parse_args(args) | |
36 | |
37 licenses = license_list() | |
38 | |
39 if options.list: # list the licenses | |
1
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
40 for i in sorted(licenses.keys()): |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
41 doc = getattr(licenses[i], '__doc__') |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
42 if doc: |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
43 print '%s: %s' % (i, doc) |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
44 else: |
cc5add25bf83
abstract License to its own class and do the work there
Jeff Hammel <jhammel@mozilla.com>
parents:
0
diff
changeset
|
45 print i |
0 | 46 sys.exit(0) |
47 | |
48 if not options.license: | |
49 parser.error("Must specify --license") | |
50 | |
51 for directory in args: | |
52 filelist = files(directory) | |
53 | |
54 if __name__ == '__main__': | |
55 main() |