# HG changeset patch # User Jeff Hammel # Date 1273519058 25200 # Node ID e700bd2ec2894ce0bc0da10036b4068407c603fe # Parent b8d620fa11166c1eba2cb5ed2f353bb1105ebd73 finish basic structure diff -r b8d620fa1116 -r e700bd2ec289 licenser/licenses.py --- a/licenser/licenses.py Mon May 10 11:46:49 2010 -0700 +++ b/licenser/licenses.py Mon May 10 12:17:38 2010 -0700 @@ -13,6 +13,11 @@ self.template) assert os.path.exists(self.template) + def print_license(self): + f = file(self.template) + print f.read() + f.close() + def __call__(self, directory, **kw): variables = self.obtain_variables(**kw) self.interpolate(directory, variables) @@ -29,8 +34,30 @@ """do anything that needs to be done before interpolation""" def interpolate(self, directory, variables): - for file in self.files(directory): - pass + for _file in self.files(directory): + + # get the file lines + f = file(_file) + lines = [ i.rstrip() for i in f.readlines() ] + f.close() + f = file(_file, 'w') + + # print shebang if it exists + if lines[0].startswith('#!'): + shebang = lines.pop(0) + print >> f, shebang + print >> f + + # print the license + g = file(self.template) + for line in g.readlines(): + print >> f, '# %s' % line.rstrip() + g.close() + + # print the rest of the file + for line in lines: + print >> f, line.rstrip() + f.close() def isempty(self, path): """ @@ -56,7 +83,7 @@ class MPL(License): """Mozilla Public License""" template = 'MPL' # could be implicit here - variables = [ 'author' ] + variables = [ 'author', 'email' ] def pre(self, variables): variables['year'] = datetime.now().year diff -r b8d620fa1116 -r e700bd2ec289 licenser/licenses/MPL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/licenser/licenses/MPL Mon May 10 12:17:38 2010 -0700 @@ -0,0 +1,36 @@ +***** BEGIN LICENSE BLOCK ***** +Version: MPL 1.1/GPL 2.0/LGPL 2.1 + +The contents of this file are subject to the Mozilla Public License Version +1.1 (the "License"); you may not use this file except in compliance with +the License. You may obtain a copy of the License at +http://www.mozilla.org/MPL/ + +Software distributed under the License is distributed on an "AS IS" basis, +WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License +for the specific language governing rights and limitations under the +License. + +The Original Code is mozilla.org code. + +The Initial Developer of the Original Code is +Mozilla.org. +Portions created by the Initial Developer are Copyright (C) ${year} +the Initial Developer. All Rights Reserved. + +Contributor(s): + ${author} <${email}> (Original author) + +Alternatively, the contents of this file may be used under the terms of +either of the GNU General Public License Version 2 or later (the "GPL"), +or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), +in which case the provisions of the GPL or the LGPL are applicable instead +of those above. If you wish to allow use of your version of this file only +under the terms of either the GPL or the LGPL, and not to allow others to +use your version of this file under the terms of the MPL, indicate your +decision by deleting the provisions above and replace them with the notice +and other provisions required by the GPL or the LGPL. If you do not delete +the provisions above, a recipient may use your version of this file under +the terms of any one of the MPL, the GPL or the LGPL. + +***** END LICENSE BLOCK ***** diff -r b8d620fa1116 -r e700bd2ec289 licenser/main.py --- a/licenser/main.py Mon May 10 11:46:49 2010 -0700 +++ b/licenser/main.py Mon May 10 12:17:38 2010 -0700 @@ -22,7 +22,7 @@ licenses[entry_point.name] = license return licenses -def print_licenses(self, licenses): +def print_licenses(licenses): for i in sorted(licenses.keys()): doc = getattr(licenses[i], '__doc__') if doc: @@ -34,12 +34,15 @@ def main(args=sys.argv[1:]): usage = '%prog [options] directory' parser = OptionParser(usage, description=__doc__) - parser.add_option('-d', '--debug', action='store_true', default=False, - help="debug the application") +# parser.add_option('-d', '--debug', action='store_true', default=False, +# help="debug the application") parser.add_option('-l', '--license', help="license to use") parser.add_option('--list', action='store_true', default=False, help="list available licenses") + parser.add_option('-p', '--print', dest='_print', + action='store_true', default=False, + help="print the chosen license") options, args = parser.parse_args(args) licenses = license_list() @@ -54,11 +57,15 @@ print_licenses(licenses) license = licenses[options.license]() + + if options._print: + license.print_license() + sys.exit(0) - + variables = license.obtain_variables() for directory in args: - filelist = files(directory) + license.interpolate(directory, variables) if __name__ == '__main__': main()