Update a copyright statement with the current year. Also makes minor corrections.
Install with npm:
$ npm install update-copyright --save
copyright(string, options);
Pass a string with a copyright statement to update, and it will be parsed and updated.
var copyright = require('update-copyright');
copyright('Copyright (c) 2015, Jon Schlinkert.');
//=> 'Copyright (c) 2015-2016, Jon Schlinkert.'
copyright('Copyright (c) 2012, 2015, Jon Schlinkert.');
//=> 'Copyright (c) 2012, 2015-2016, Jon Schlinkert.'
The current year is updated/appended to existing years. The rest of the information will stay the same unless new information is passed.
If you're too lazy to pass anything at all, that's okay! You get a free copyright statement with the current year, using data from package.json!
copyright();
//=> 'Copyright (c) 2016, Jon Schlinkert.'
Example
If the author is missing it will be filled in with the author from package.json.
copyright('Copyright (c) 2014.');
//=> 'Copyright (c) 2014-2015, Jon Schlinkert.'
It will use the author from package.json if a misspelling seems obvious (according to its Levenshtein distance):
copyright('Copyright (c) 2014, Jon Shlinert');
//=> 'Copyright (c) 2014, 2016, Jon Schlinkert.'
See the tests for more examples.
A template is used to create the new copyright statement, and the options object is merged with the context that is passed to the template.
- The (context) object is populated with data from the parsed (old) copyright statement
- The object is then updated with the current year, author from package.json, and any other data you pass on the options.
Custom context
This is what the context object looks like. To override anything on the context just pass the property and value on the options:
{ year: '2015',
prefix: 'Copyright',
symbol: '(c)',
template: '<%= prefix %><%= symbol ? (" " + symbol + " ") : "" %><%= years %>, <%= authors %>.',
statement: 'Copyright (c) 2015, Jon Schlinkert',
dateRange: '2014',
latest: '2014',
author: 'Jon Schlinkert' }
Example
Pass any custom data (as shown above) on the options:
copyright('Copyright (c) 2015.', {author: 'Foo Bar'});
//=> 'Copyright (c) 2015-2016, Foo Bar.'
You might also be interested in these projects:
- copyright-regex: Regex for matching and parsing copyright statements. | homepage
- parse-copyright: Parse copyright statement(s) into an array of copyright objects. | homepage
- update-year: Update or add the current year to a range of years in a string. | homepage
- year: Simple utility to get the current year with 2 or 4 digits. | homepage
- update: Easily keep anything in your project up-to-date by installing the updaters you want to use… more | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on May 05, 2016.