Skip to content

Instantly share code, notes, and snippets.

@bjankord
Last active July 12, 2019 11:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bjankord/6c29c7f4cd4d8f0e823eccaeb333a881 to your computer and use it in GitHub Desktop.
Save bjankord/6c29c7f4cd4d8f0e823eccaeb333a881 to your computer and use it in GitHub Desktop.
Changelog find and replace script
#!/usr/bin/env node
/* eslint-disable no-console */
/* eslint import/no-extraneous-dependencies: ["error", {"devDependencies": true}] */
const fs = require('fs');
const path = require('path');
const packagePaths = require('../peer-dependency-generator/getPackagePaths');
const findAndReplace = require('../peer-dependency-generator/findAndReplace');
// Generate the markdown to display peerDependencies information for each package
packagePaths.forEach((packagePath) => {
const changelogFile = path.resolve(packagePath, 'CHANGELOG.md');
if (!fs.existsSync(changelogFile)) {
return; /* eslint-disable-line no-useless-return */
}
fs.readFile(changelogFile, 'utf8', (err) => {
if (err) {
console.error(`Error reading file ${changelogFile} ${err}\n`);
} else {
const content = `Unreleased
----------
### Added
* Added documentation on required peerDependencies`;
const regex = /Unreleased\n----------/g;
findAndReplace({
file: changelogFile, regex, content,
});
}
});
});
const replace = require('replace-in-file');
const ml = `Unreleased
----------
9.0.0 - (April 20, 2018)
------------------
### Changed
* Minor dependency version bump`;
const options = {
files: 'packages/**/CHANGELOG.md',
from: /Unreleased\n----------/g,
to: ml,
};
replace(options)
.then((changes) => {
console.log('Modified files:', changes.join(', '));
})
.catch((error) => {
console.error('Error occurred:', error);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment