Skip to content

lararosekelley/licenser

Repository files navigation

Licenser

Tool for adding open source licenses to your projects


PyPI PyPI Travis

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!

Prerequisites

  • Python 2.6+ or Python 3.4+

Installation

$ pip install licenser

Alternatively, grab the zip!

Usage

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.

Configuration

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.

Development Setup

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].

Contributing

See CONTRIBUTING.md for details.

I accept pull requests; there are some potential improvements I've been thinking about:

  1. Prepending headers to source code files for licenses that recommend it
  2. Pull licenses from an online API (maybe)
  3. 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.