about summary refs log tree commit diff stats

licensor: plop a license in there

Are you tired of copying and pasting licenses into your new projects? Do you always forget what the dang github api thing is? Or I don’t know, have some other reason why doing licenses is hard?

Well now you don’t have to worry! Just run licensor in your new repo and BLAMMO! Done.


licensor comes with a Makefile for ease-of-installing, but it’s just a shell script. You can drop it in your $PATH.


literally taken from licensor -h:

licensor: easily provide a license for a project
USAGE: licensor [-h|-l|-L]
licensor -s QUERY

-h   Display this help and exit.
-l   List available licenses and exit.
-L   List available licenses, disregarding cache.
     This flag will re-download the license repo.

-f   Overwrite existing license.
-q   Be quiet (don't log anything).
-z   Fold output to 70 characters (see -w).
-Z   Disable folding of output.
-p   Include "optional" license content.
-P   Don't include "optional" content.

-s QUERY        Search for a license matching QUERY.
                Only license titles are searched.

-y YEARS        Set copyright date(s) to YEARS.
                Default: $(date +%Y).
-a AUTHORS      Set copyright holder(s) to AUTHOR.
                Default: use the first of
                 - git config --get user.name
                 - getent password $USER
                 - $USER
 -e EMAILS         Set AUTHOR's EMAIL address.
                Default: $(git config --get user.email),
                or stay blank.
 -c COPYRIGHT   Set the entire COPYRIGHT string to print.
                By default, it's built from the above information:
                "Copyright (C) <year> <author> <email>".
 -w WIDTH       Fold the output to WIDTH characters.
                Default: 70.
 -o FILE        Output the fetched license to FILE.
                Default: $PWD/COPYING.

 LICENSE        The license to use.
                Default: MIT.

You can use an output file of - (i.e., licensor -o-) to print the license to stdout.

Available licenses

Licenses are pulled from SPDX’s git repository of licenses. This includes all of the more common licenses, and honestly, if you’re wanting to do something weird is licensor the right project for you?

That being said, adding the ability for arbitrary license “repositories” is probably for the best.


SPDX uses a [particular templating format][spdx-template-format] that licensor can read and use. As of v1.0, only beginOptional/endOptional and var;name="copyright" fields are filled in; all others are stripped from output.


There are some environment variables you can set to change licensor’s default behavior:

  • LICENSE_REPO_URL : https://github.com/spdx/license-list-data/archive/refs/tags/v$LICENSE_REPO_VERSION.tar.gz
  • LICENSE_REPO_PATH : license-list-data-$LICENSE_REPO_VERSION/template


Send me an email.


MIT, baby.

See COPYING for details.


Case Duckworth wrote this. He did not look around for existing solutions.