UNPKG

1.74 kBJavaScriptView Raw
1/*
2 * grunt-chg
3 * https://github.com/heff/chg
4 *
5 * Copyright (c) 2014 heff
6 * Licensed under the MIT license.
7 */
8
9'use strict';
10
11var commands = require('../lib/commands.js');
12
13module.exports = function(grunt) {
14 // Please see the Grunt documentation for more information regarding task
15 // creation: http://gruntjs.com/creating-tasks
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};