Tool for adding open source licenses to your projects
Finding and adding a license to your project is an annoying process, and can be quite tedious depending on the license you choose.
Licenser allows you to quickly add a license to your project from the command line. Supported licenses can be found in the assets folder.
Don't see what you need? Open an issue to suggest the addition of other licenses!
- Python 2.6+ or Python 3.4+
$ pip install licenser
Alternatively, grab the zip!
From the command line:
$ licenser -n "Your Name" -e "you@example.com" -l "license name" -p "project name"
Name, email, and license are the three required parameters; project will default to the current directory name if you don't include it.
--txt
will add the .txt
extension to the LICENSE
file.
If you're like me and don't change your name very often, you can save time by
storing your defaults for name, email, and license in ~/.licenser
:
name="Your Name"
email="you@example.com"
license="MIT"
Now any time you run licenser
, you don't need to provide arguments unless you
want to override defaults.
I recommend using pyenv
with the pyenv-virtualenv
plugin. This
document provides information on setting that up.
Regardless, make sure you have Python 2.7 or 3.6 installed in some form.
With pyenv
First, clone the repository:
$ git clone https://github.com/tylucaskelley/licenser && cd licenser
Next, create your virtual environment and activate it:
$ pyenv virtualenv venv && pyenv activate venv
Finally, install the dependencies:
$ pip install -r requirements.txt
Now you're good to go! Run tests with the nosetests
command and test out the
script with python licenser [args]
.
Without pyenv
Clone the repository:
$ git clone https://github.com/tylucaskelley/licenser && cd licenser
Install the dependencies:
pip install -r requirements.txt
Now you're good to go! Run tests with the nosetests
command and test out the
script with python licenser [args]
.
See CONTRIBUTING.md for details.
I accept pull requests; there are some potential improvements I've been thinking about:
- Prepending headers to source code files for licenses that recommend it
- Pull licenses from an online API (maybe)
- Support for more licenses
Additionally, make sure that all tests pass when you add features, and write
new unit tests if you add a function. Tests can be run using the nosetests
command from the root project directory.