License check and add
license-check-and-add is an npm module to check whether a specified piece of text is present in specific formats for a set of files. It also can insert the formatted text into files that do not contain it or remove it from those that do.
npm install -D license-check-and-add
license-check-and-add is run using the following command either in your terminal if installed globally or as an npm script if installed locally to a module.
license-check-and-add [check|add|remove] -f [path/to/config.json]
The tool will check against files in the directory and its sub-directories unless they are specifically ignored. By default the command will ignore the following directories:
and files with the extensations:
You can turn off this default ignoring in the config file.
The path to the file containing the unformatted license text to check/add/remove. You can specify and absolute or relative path. Relative paths will be taken relative to the location where the command is run rather than the config file.
Boolean value to specify whether or not to use the default ignores specified above. Setting to
true will mean that those are NOT used.
Either the path to an ignore style file (e.g. gitignore) or an array of globby strings specifying which files to ignore (e.g. ["**/*.txt"]). This list will be used in combination with the default ignore list unless you specify not to use that list.
By default this is set such that whitespace at the end of lines in a license is ignored. This means in
add mode should your license contain a blank line and your formatting for that license contain a space after a prepend (for example
*) then the blank line would have trailing whitespace. It also means when searching for licenses (such as in
check mode) a file will match even if its license lines finish in whitespace when the formatted license lines do not. Setting the value of this property to be
TRIM will enforce both when checking and adding the license that the file's license contains no whitespace at the end of lines. This can be useful for ensuring that when the license is inserted it meets linting requirements.
File location where list of relevent files should be sent to.
check- list of files missing licenses
add- list of files with licenses added
remove- list of files with licenses removed
Describes how the license should be formatted for different file types. A format object should be used for each entry. You can share a format object for multiple file types by separating the file with a "|". Entries in this field will overright the default formats. Example:
//. If the tool is in
add mode the license will be inserted in that format also.
Note: if you are specifying a file starting with a dot such as
.gitignoredo NOT include the leading dot.
The format the license should take if a file type is iterated over by a checker that is not one of the default formats or specified in the licenseFormats section. If this value is not set then a default format of
will be used.
A format object is used in the configuration fields default_format and license_formats. The object is used to specify how a license should start, how a license should end and how each line should start and end. Alternatively it can specify a specific file that should be used as the license. Using a format object allows you to comment out licenses in files where they may have an impact if left as text and use the same license file for multiple file types.
Specifying a format object to point to a file:
Specifying a format object to write a line at the start and end of the license:
Specifying a format object to write at the start and end of each line of the license:
Note: You can combine prepend, append and eachLine formats but file should be used alone.