Copyrightizen
this module is a tool to append/update copyright/license notice in target source files, based on scope management.
Usage
For installation, run
npm install copyrightizen -g
to run copyrightizen against some file with glob patterns, run
copyrightizen --paths src/*.ts
to run copyrightizen with config file, just run
copyrightizen [--config custom.config.js]
Features
Configuration
Config File
thanks to cosmiconfig, Copyrightizen support a bunch of config variants:
- a
copyrightizen
property in package.json
- a
.copyrightizenrc
file in JSON or YAML format - a
.copyrightizenrc.json
file - a
.copyrightizenrc.yaml
, .copyrightizenrc.yml
, or .copyrightizenrc.js
file - a
copyrightizen.config.js
file exporting a JS object
A sample content of the config should look like this:
{
"licenseText": "Copyright (c) Humans on Mars",
"updateStrategy": "update",
"scopes": [
{
"name": "scopeA",
"paths": ["*.ts*"],
"licenseText": "Copyright (c) Humans on Moon",
"updateStrategy": "update",
},
]
}
NOTE: For the detail constraints of the supported configurations, see the JSON schema.
NOTE: Configuration uses globby for glob matching, it support glob features what globby supports
Options Precedence order
From lowest to highest
- default global Options
- global Options from config file(if config is enabled and a config file is found)
- command line global options
- related scope options if available
Scopes Precedence order
the order of scopes within config file matters.
The global scope (aka default config) has the lowest priority.
The later a scope is defined in the scopes list, the higher priority it has.
Command Line Help Message
Options:
--version Show version number [boolean]
--config Use the specific configuration file [string]
--detect-rule regexp expression to detect copyright [string]
--paths a list of glob string to match desired files [array]
--license-text the license/copyright notice [string]
--license-template-url the address for license template file [string]
--update-strategy the update strategy when existing copyright is
detected in matched source file
[choices: \\"update\\", \\"skip\\"]
--follow-gitignore exclude the files listed as excluded in .gitignore
[boolean]
-h, --help Show help [boolean]
Examples:
cli.js --config crn.spec.json
cli.js --detect-rule /@license/i
cli.js --license-text \\"@license whatever you want\\"
cli.js --license-template-url config/license.tpl