1 |
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 | 'use strict';
|
10 |
|
11 | var commands = require('../lib/commands.js');
|
12 |
|
13 | module.exports = function(grunt) {
|
14 |
|
15 |
|
16 |
|
17 | function getCallback(done) {
|
18 | return function(err, success){
|
19 | if (err) {
|
20 | grunt.log.error(err.message);
|
21 | return done(false);
|
22 | }
|
23 | grunt.log.writeln(success);
|
24 | done(true);
|
25 | }
|
26 | }
|
27 |
|
28 | grunt.registerTask('chg-init', 'Create the CHANGELOG.md file', function() {
|
29 | var done = this.async();
|
30 | commands.init({}, getCallback(done));
|
31 | });
|
32 |
|
33 | grunt.registerTask('chg-add', 'Add a line to the changelog', function(line) {
|
34 | var done = this.async();
|
35 | commands.add(line, {}, getCallback(done));
|
36 | });
|
37 |
|
38 | grunt.registerTask('chg-release', 'Add a new release and move unrleased changes under it', function(version) {
|
39 | var done = this.async();
|
40 | commands.release(version, {}, function(err, release) {
|
41 | if (err) {
|
42 | grunt.log.error(err.message);
|
43 | done(false);
|
44 | }
|
45 |
|
46 | grunt.config.set('chg.release.title', release.title);
|
47 | grunt.config.set('chg.release.changes', release.changes);
|
48 | });
|
49 | });
|
50 |
|
51 | grunt.registerTask('chg-find', 'Find a release in the changelog', function(version) {
|
52 | var release = commands.find(version);
|
53 |
|
54 | if (Object.keys(release).length === 0) {
|
55 | return grunt.log.write('Release not found in the changelog');
|
56 | }
|
57 |
|
58 | return release;
|
59 | });
|
60 |
|
61 | grunt.registerTask('chg-delete', 'Delete the changelog', function() {
|
62 | var done = this.async();
|
63 | commands.delete({}, getCallback(done));
|
64 | });
|
65 | };
|