Skip to main content

Add or change license headers for all files in a directory

Project description

PyPi version Python compatibility

licenseheaders

A tool to update, change or add license headers to all files of any of the supported types in or below some directory.

Currently, the following file types are supported: Java/Scala/Groovy, bash/sh/csh, ...

Usage

usage: licenseheaders [-h] [-V] [-v] [-d DIR] [-t TMPL] [-y YEARS] [-o OWNER]
                      [-n PROJECTNAME] [-u PROJECTURL] [--enc ENCODING]
                      [--safesubst]

Python license header updater

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  -v, --verbose         increases log verbosity (can be specified multiple
                        times)
  -d DIR, --dir DIR     The directory to recursively process (default: .).
  -t TMPL, --tmpl TMPL  Template name or file to use.
  -y YEARS, --years YEARS
                        Year or year range to use.
  -o OWNER, --owner OWNER
                        Name of copyright owner to use.
  -n PROJECTNAME, --projname PROJECTNAME
                        Name of project to use.
  -u PROJECTURL, --projurl PROJECTURL
                        Url of project to use.
  --enc ENCODING        Encoding of program files (default: utf-8)
  --safesubst           Do not raise error if template variables cannot be
                        substituted.

Known extensions: ['.java', '.scala', '.groovy', '.jape', '.js', '.sh', '.csh', '.py', '.pl', '.pl', '.py', '.xml', '.sql', '.c', '.cc', '.cpp', 'c++', '.h', '.hpp', '.rb', '.cs', '.vb', '.erl', '.src', '.config', '.schema']

If -t/--tmpl is specified, that header is added to (or existing header replaced for) all source files of known type
If -t/--tmpl is not specified byt -y/--years is specified, all years in existing header files
  are replaced with the years specified

Examples:
  # add a lgpl-v3 header and set the variables for year, owner, project and url to the given values
  # process all files in the current directory and below
  licenseheaders -t lgpl-v3 -y 2012-2014 -o ThisNiceCompany -n ProjectName -u http://the.projectname.com
  # only update the year in all existing headers
  # process all files in the current directory and below
  licenseheaders -y 2012-2015
  # only update the year in all existing headers, process the given directory
  licenseheaders -y 2012-2015 -d /dir/where/to/start/

If licenseheaders is installed as a package (from pypi for instance), one can interact with it as a command line tool:

python -m licenseheaders -t lgpl3 -c "Eager Hacker"

or directly:

licenseheaders -t lgpl3 -c "Eager Hacker"

Installation

Download licenseheaders.py from http://github.com/johann-petrak/licenseheaders or :

pip install licenseheaders

Template names and files

This library comes with a number of predefined templates. If a template name is specified which when matched against all predefined template names matches exactly one as a substring, then that template is used. Otherwise the name is expected to be the path of file.

If a template does not contain any variables of the form ${varname} it is used as is. Otherwise the program will try to replace the variable from one of the following sources:

  • an environment variable with the same name but the prefix LICENSE_HEADERS_ added
  • the command line option that can be used to set the variable (see usage)

Supported file types and how they are processed

java:

  • extensions .java, .scala, .groovy, .jape, .js
  • also used for Javascript
  • only headers that use Java block comments are recognised as existing headers
  • the template text will be wrapped in block comments

script:

  • extensions .sh, .csh

perl:

  • extension .pl

python:

  • extension .py

xml:

  • extension .xml

sql:

  • extension .sql

c:

  • extensions .c, .cc, .cpp, .c++, .h, .hpp

ruby:

  • extension .rb

csharp:

  • extension .cs

visualbasic:

  • extension .vb

erlang:

  • extensions .erl, .src, .config, .schema

License

Licensed under the term of MIT License. See attached file LICENSE.txt.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

licenseheaders-0.5.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

licenseheaders-0.5-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

Details for the file licenseheaders-0.5.tar.gz.

File metadata

  • Download URL: licenseheaders-0.5.tar.gz
  • Upload date:
  • Size: 9.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for licenseheaders-0.5.tar.gz
Algorithm Hash digest
SHA256 b50205f8d62b5fef273a63a47b0c7f772c5caaecd815768d3dbd12490d8d516f
MD5 653ad70f681f9cf55ccf37dba8c1a3ff
BLAKE2b-256 dbfdd796ceeb7098014a38b02757b18f7e0e11424a4cb7ffd9f31745fd231106

See more details on using hashes here.

File details

Details for the file licenseheaders-0.5-py3-none-any.whl.

File metadata

  • Download URL: licenseheaders-0.5-py3-none-any.whl
  • Upload date:
  • Size: 22.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.4.2 requests/2.21.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.6.8

File hashes

Hashes for licenseheaders-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 b7c1f21d13e4458bf963a09947925366ab54354a9462dfa7a260092ac3c60744
MD5 56c2c11434ebe72c0612b251e6d828f0
BLAKE2b-256 08750179b623ecb329f4f114cfeba9ce590776b7a0641bc92a805aac9e1d8b28

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page