Command-line tool for adding boilerplate licensing to your open-source projects. GPL, MIT, and BSD licenses supported.
# Garnish: painless boilerplate licensing
A recent study found that [only 15% of github projects](http://www.theregister.co.uk/2013/04/18/github_licensing_study/) have clearly stated license terms. Omitting a license from your open source project limits its usefulness to the community.
This project aims to reduce the “pain” of applying boilerplate licensing to your open source projects.
For python devs, installing the latest release of garnish is as simple as
$ pip install garnish
If you’re not a frequent python user and don’t have the pip installer, you can also install it manually
$ git clone git://github.com/jhamon/garnish.git $ cd garnish $ python setup.py install
To see the full menu of available options and licenses, run garnish -h or garnish –help at any time.
To get started nagivate to your project root, and use the following syntax on the command line
$ garnish <license> “Cool Copyright Hold” “Your Awesome Project Name”
A few examples of basic usage might be:
$ garnish gpl3 “GNU Foundation” “Emacs” $ garnish mit “Google, Inc” “Angular JS”
Garnish supports many popular and interesting licenses.
- artistic Perl Foudation Artistic License, Version 2.0 agpl3 GNU Affero General Public License, Version 3.0 apache2 Apache License, Version 2.0 bsd3 BSD 3-Clause License bsd2 BSD 2-Clause License gpl2 GNU General Public License, Version 2.0 gpl3 GNU General Public License, Version 3.0 lgpl3 GNU Lesser General Public License,Version 3.0 mit MIT License mpl2 Mozilla Public License, Version 2.0
- crapl Community Research and Academic Programming License unlicense Release code to public domain. See unlicense.org. wtfpl Do What the Fuck You Want To Public License, Version 2
### In-file copyright and licensing notices.
Garnish can also add copyright and licensing notices at the beginning of your individual source files; this is standard practice with some projects and some licenses. When the terms of a license recommend or require a copyright and licensing notice to be placed inside a file, garnish will do this automatically unless you prevent it using the -x option. You can force the use of source file headers regardless of license used with the with the -f option.
If you find yourself needing to remove the licensing notice garnish has placed inside your project’s source files (e.g. because you want to change to a different license), run the garnish-rm (no space) command in your project root. This command inspects each file and looks for the license block delimeters that garnish normally applies (e.g. the ::::: LICENSE AND COPYRIGHT NOTICE :::: and :::::::::::::::::::::::::: lines). garnish-rm will do nothing to your file if the notice delimeters are missing or modified.
Garnish is Copyright (c) 2013 Jennifer Hamon (email@example.com) and released under the MIT license. For details about this license, please see the text of LICENSE.
Although this software has been tested, there is a chance that any files handled by the software could be lost or damaged. Consequently, do not use garnish on work that has not been commited to your repository. As per the MIT License, I am not responsible for any data loss that may occur as a result of using this tool.
### Contacting the author
I am not a lawyer, and this software does not provide legal advice. However, if you’ve found this software useful, I’d love to hear from you. Reach out on twitter [@jenplusplus](http://www.twitter.com/jenplusplus) or email firstname.lastname@example.org.
To report any issues or problems, please use the [github issue tracker](https://github.com/jhamon/garnish/issues).