scripts/lint-commit-msg.js (22 lines of code) (raw):
const fs = require('fs');
const util = require('util');
const { lint, load, format } = require('@commitlint/core');
const readFileAsync = util.promisify(fs.readFile);
Promise.all([load(), readFileAsync(process.env.GIT_PARAMS, 'utf8')])
.then(tasks => {
const [{ rules, parserPreset }, commitMsg] = tasks;
return lint(
commitMsg,
rules,
parserPreset ? { parserOpts: parserPreset.parserOpts } : {}
);
})
.then(report => {
console.log(format(report, { color: true }).join('\n'));
console.log(`Valid: ${report.valid}`);
process.exit(report.valid ? 0 : -1);
})
.catch(e => {
console.log(`Something wrong ${e.message}`);
process.exit(-1);
});