Automates the prepending of a license header doc block to your directory(ies) of source files.
Currently still in development, but will:
- Accept a directory of source files or a path to a single source file to process
- Accept a file path containing your custom license doc block
- Will not add license headers to files that have comments before the class declaration (class doc blocks are okay) unless you explicitly tell it to
- Can check your source files for the correct license information
- Add
"jameshalsall/licenser":"dev-master"
to yourcomposer.json
require-dev
- Run
composer update
- Run
./bin/licenser run /path/to/source/files /path/to/license/file
to process source files
Licenser supports the following built-in licenses:
- The Apache 2.0 license (referred to as
apache-2.0
in Licenser) - The MIT license (referred to as
mit
in Licenser)
To use one of these built-in licenses you just replace the path to your custom licenses file with the name of the built-in license instead. For example if you wanted to use the MIT license then you would run something like:
./bin/licenser run /path/to/files mit --owners="[email protected] [email protected]"
When using a built-in license the Licenser will replace special placeholders with custom values. The following twig placeholder values are used:
thisYear
(always replaced with the current year)owner
(replaced with the value you specify via the--owners
option, or ignored if you don't specify a value)
You can tell the Licenser to replace an existing license header with a new one by using the --replace-existing
option
when running the command. This will tell Licenser to remove any existing licenses and replace them with the new one generated.
Licenser also allows you to check your source files for correct license information. It will warn you if there are any source files that do not have a license header that matches the options you provide.
./bin/licenser check /path/to/files mit [email protected]
It is recommended that you have your source files under version control when running the tool as it is still experimental and very much in development.
Add support for replacing an existing license(thanks to @markwilson)Add built-in license optionsAdd dry-run option to see affected files before adding headers(thanks to @unfunco)Add support for processing single files(thanks to @jeroensmit)Add support for placeholders in custom license files (such as year, owner etc.)
If you find any problems with the library then open an issue with a description of the problem and I will aim to resolve it.