Skip to content

Commit

Permalink
Adds create-changelog script to recreate entire changelog based on js…
Browse files Browse the repository at this point in the history
…on files in .changes/ directory. Modified update-changelog script to use markdown syntax rather than HTMl, and changed to use parseInt to convert numeric strings to numbers.
  • Loading branch information
LiuJoyceC committed Jul 7, 2016
1 parent dcabbf5 commit 57eaf84
Show file tree
Hide file tree
Showing 2 changed files with 52 additions and 11 deletions.
43 changes: 43 additions & 0 deletions scripts/create-changelog
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
#!/usr/bin/env node

var fs = require('fs');

try {
var changeFiles = fs.readdirSync(process.cwd() + '/.changes');
} catch (err) {
if (err.code === 'ENOENT') {
err.message += '. Make sure to run from sdk root directory';
}
throw err;
}

var updateScript = process.cwd() + '/scripts/update-changelog';
var changelogFile = process.cwd() + '/CHANGELOG.md';

var startContent = '# Changelog for AWS SDK for JavaScript\
\n<!--LATEST=0.0.0-->\
\n<!--ENTRYINSERT-->'

fs.writeFileSync(changelogFile, startContent);

var fileReg = /^(\d*)\.(\d*)\.(\d*)\.json$/;

changeFiles
.map(function(file) { return file.match(fileReg); })
.filter(function(version) { return !!version; })
.sort(function(v1, v2) {
var diff;
for (var i = 1; i <= 3; i++) {
diff = v1[i] - v2[i];
if (diff !== 0) {
return diff;
}
}
return 0;
})
.map(function(version) { return version.slice(1).join('.'); })
.forEach(function(version) {
process.argv[2] = version;
delete require.cache[updateScript];
require(updateScript);
});
20 changes: 9 additions & 11 deletions scripts/update-changelog
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ try {
}

var latest = changelog.match(versionMarkerReg);
var lmajor = +latest[1];
var lminor = +latest[2];
var lpatch = +latest[3];
var lmajor = parseInt(latest[1], 10);
var lminor = parseInt(latest[2], 10);
var lpatch = parseInt(latest[3], 10);

var version = process.argv[2];
if (version !== undefined) {
Expand All @@ -32,9 +32,9 @@ if (version !== undefined) {
version = version.match(new RegExp('^' + versionRegStr + '$'));
if (version) {
// convert to num for comparison and for normalizing leading zeros
var major = +version[1];
var minor = +version[2];
var patch = +version[3];
var major = parseInt(version[1], 10);
var minor = parseInt(version[2], 10);
var patch = parseInt(version[3], 10);
if (major < lmajor ||
major == lmajor && minor < lminor ||
major == lmajor && minor == lminor && patch <= lpatch) {
Expand All @@ -58,18 +58,16 @@ if (!Array.isArray(changes)) {
throw new Error('json not in correct format');
}

var entry = '\n\n## ' + version + '\n<ul>';
var entry = '\n\n## ' + version;

changes.forEach(function(change) {
if (!change.type || !change.category || !change.description) {
throw new Error('json not in correct format');
}
entry += '\n\t<li>' + change.type + ': ' + change.category + ': ' +
change.description + '</li>';
entry += '\n* ' + change.type + ': ' + change.category + ': ' +
change.description;
});

entry += '\n</ul>';

var logParts = changelog.split(insertMarker);
logParts[0] = logParts[0]
.replace(versionMarkerReg, versionMarker.join(version)) + insertMarker;
Expand Down

0 comments on commit 57eaf84

Please sign in to comment.