comindware.core.ui
Version:
Comindware Core UI provides the basic components like editors, lists, dropdowns, popups that we so desperately need while creating Marionette-based single-page applications.
36 lines (29 loc) • 1.22 kB
JavaScript
const fs = require('fs');
const exec = require('child_process').exec;
const pathResolver = require('../pathResolver');
module.exports = callback => {
if (!process.env.PREVIOUS_PACKAGE_VERSION || !process.env.PACKAGE_VERSION) {
callback();
return;
}
exec(`git log --pretty=format:"%s" ${process.env.PREVIOUS_PACKAGE_VERSION}...${process.env.PACKAGE_VERSION}`, (err, stdout, stderr) => {
if (err) {
console.error(err);
return;
}
if (stderr) {
console.log(stderr);
}
const onlyUnique = array => array.filter((v, i, arr) => arr.indexOf(v) === i);
const tasks = onlyUnique(stdout.match(/\[#[^\[]+\]/g) || []).join('');
const template = `
${process.env.PREVIOUS_PACKAGE_VERSION}...${process.env.PACKAGE_VERSION}
${tasks}
========
${stdout.replace(/^Merge pull request.*[\r\n]*/gm, '')}
`;
fs.appendFileSync(pathResolver.root('CHANGELOG.md'), template, 'utf8');
console.log(`CHANGELOG.md has been successfully generated between versions ${process.env.PREVIOUS_PACKAGE_VERSION}...${process.env.PACKAGE_VERSION}`);
callback();
});
}