Files
gruvbox/node_modules/conventional-recommended-bump/cli.js

80 lines
2.3 KiB
JavaScript
Executable File

#!/usr/bin/env node
'use strict';
var meow = require('meow');
var conventionalRecommendedBump = require('./');
var path = require('path');
var cli = meow({
help: [
'Usage',
' conventional-recommended-bump',
'',
'Example',
' conventional-recommended-bump',
'',
'Options',
' -p, --preset Name of the preset you want to use',
' -g, --config A filepath of your config script',
' -h, --header-pattern Regex to match header pattern',
' -c, --header-correspondence Comma separated parts used to define what capturing group of `headerPattern` captures what',
' -r, --reference-actions Comma separated keywords that used to reference issues',
' -i, --issue-prefixes Comma separated prefixes of an issue',
' -n, --note-keywords Comma separated keywords for important notes',
' -f, --field-pattern Regex to match other fields',
' -v, --verbose Verbose output',
' -l, --lerna-package Recommend a bump for a specific lerna package (:pkg-name@1.0.0)',
' -t, --tag-prefix Tag prefix to consider when reading the tags',
' --commit-path Recommend a bump scoped to a specific directory'
]
}, {
alias: {
p: 'preset',
g: 'config',
h: 'headerPattern',
c: 'headerCorrespondence',
r: 'referenceActions',
i: 'issuePrefixes',
n: 'noteKeywords',
f: 'fieldPattern',
v: 'verbose',
l: 'lernaPackage',
t: 'tagPrefix'
}
});
var options = {
path: cli.flags.commitPath,
lernaPackage: cli.flags.lernaPackage,
tagPrefix: cli.flags.tagPrefix
};
var flags = cli.flags;
var preset = flags.preset;
var config = flags.config;
if (preset) {
options.preset = preset;
delete flags.preset;
} else if (config) {
options.config = require(path.resolve(process.cwd(), config));
delete flags.config;
}
if (flags.verbose) {
options.warn = console.warn.bind(console);
}
conventionalRecommendedBump(options, flags, function(err, data) {
if (err) {
console.error(err.toString());
process.exit(1);
}
if (data.releaseType) {
console.log(data.releaseType);
}
if (flags.verbose && data.reason) {
console.log('Reason: ' + data.reason);
}
});