#!/usr/bin/env node 'use strict'; var pkg = require('../package.json'); var commands = require('../lib/commands.js'); var program = require('commander'); var prompt = require('prompt'); program.version(pkg.version); program .command('init') .description('Create the CHANGELOG.md in the current directory') .action(function(args){ commands.init({}, function(err, changeLogFile) { if (err) return console.error(err.message); console.log(changeLogFile +' created'); }); }); program .command('add [line]') .description('Add one line to the changelog') .action(function(line, info){ commands.add(line, {}, function(err, line) { if (err) return console.error(err.message); console.log('Change added: '+ line); }); }); program .command('release [version]') .description('Move unreleased changes under a new release heading') .option('-d, --date [date]', 'Specify a date (defaults to today)') .option('-y, --yes', 'Use defaults, do not prompt you for options') .action(function(version, info){ var options = {}; if (info.date) { options.date = info.date; } if (info.yes) { options.noprompt = true; } commands.release(version, options, function(err, changes) { if (err) return console.error(err.message); console.log('Changelog updated with new release: '+ changes.title); }); }); program .command('find [version]') .description('Find a specific release by version number') .action(function(version) { commands.find(version, options, function(err, release) { if (err) return console.error(err.message); console.log('Title: '+ release.title); console.log('Changes: '+ release.changesRaw); }); }); program .command('delete') .description('Delete the changelog') .action(function(info){ commands.delete({}, function(err, changeLogFile) { if (err) return console.error(err.message); console.log(changeLogFile +' deleted.'); }); }); program.parse(process.argv); // default to help if no commands if (program.args.length === 0) { program.help(); }