40 lines
1.2 KiB
JavaScript
Executable File
40 lines
1.2 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
/*jshint shelljs:true, lastsemic:true, -W101*/
|
|
|
|
"use strict";
|
|
|
|
var version = require("../package.json").version;
|
|
require("shelljs/make");
|
|
|
|
exec("git log --format='%H|%h|%an|%s' " + version + "..HEAD", { silent: true }, function (code, output) {
|
|
if (code !== 0)
|
|
return void console.log("git log return code is non-zero");
|
|
|
|
var commits = output.split("\n")
|
|
.filter(function (cmt) { return cmt.trim() !== ""; })
|
|
.map(function (cmt) { return cmt.split("|"); });
|
|
|
|
var html = "";
|
|
var authors = {};
|
|
|
|
commits.forEach(function (cmt) {
|
|
if (cmt[3].indexOf("Merge") === 0) {
|
|
return;
|
|
}
|
|
var tr = "";
|
|
tr += "<td class='commit'><a href='https://github.com/jshint/jshint/commit/" + cmt[0] + "'>" + cmt[1] + "</a></td>";
|
|
tr += "<td class='desc'>" + cmt[3].replace(/(#(\d+))/, "<a href='https://github.com/jshint/jshint/issues/$2/'>$1</a>") + "</td>";
|
|
html += "<tr>" + tr + "</tr>\n";
|
|
|
|
if (cmt[2] !== "Anton Kovalyov")
|
|
authors[cmt[2]] = true;
|
|
});
|
|
|
|
echo("<!-- auto-generated -->");
|
|
echo("<table class='changelog'>\n" + html + "</table>\n");
|
|
|
|
if (Object.keys(authors).length) {
|
|
echo("<p class='thx'><strong>Thanks</strong> to " + Object.keys(authors).join(", ") + " for sending patches!</p>");
|
|
}
|
|
});
|