123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- import {exec} from 'child_process';
- import fs from 'fs';
- import path from 'path';
- /* eslint no-console: 0 */
- const pkg = require(path.join(__dirname, '../package.json'));
- /**
- * Determines whether or not the project has the CHANGELOG setup by checking
- * for the presence of a CHANGELOG.md file and the necessary dependency and
- * npm script.
- *
- * @return {Boolean}
- */
- const hasChangelog = () => {
- try {
- fs.statSync(path.join(__dirname, '../CHANGELOG.md'));
- } catch (x) {
- return false;
- }
- return pkg.devDependencies.hasOwnProperty('chg') &&
- pkg.scripts.hasOwnProperty('change');
- };
- /**
- * Determines whether or not the project has the Bower setup by checking for
- * the presence of a bower.json file.
- *
- * @return {Boolean}
- */
- const hasBower = () => {
- try {
- fs.statSync(path.join(__dirname, '../bower.json'));
- return true;
- } catch (x) {
- return false;
- }
- };
- const commands = [];
- // If the project has a CHANGELOG, update it for the new release.
- if (hasChangelog()) {
- commands.push(`chg release "${pkg.version}"`);
- commands.push('git add CHANGELOG.md');
- }
- // If the project supports Bower, perform special extra versioning step.
- if (hasBower()) {
- commands.push('git add package.json');
- commands.push(`git commit -m "${pkg.version}"`);
- // We only need a build in the Bower-supported case because of the
- // temporary addition of the dist/ directory.
- commands.push('npm run build');
- commands.push('git add -f dist');
- }
- if (commands.length) {
- exec(commands.join(' && '), (err, stdout, stderr) => {
- if (err) {
- process.stdout.write(err.stack);
- process.exit(err.status || 1);
- } else {
- process.stdout.write(stdout);
- }
- });
- }
|