Skip to content

Commit 329503e

Browse files
committed
build: add version script for npm version releases
1 parent ab66205 commit 329503e

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
"lint": "eslint .",
4242
"test": "node test/run.js",
4343
"test-ci": "nyc --reporter=text npm test",
44-
"test-cov": "nyc --reporter=html --reporter=text npm test"
44+
"test-cov": "nyc --reporter=html --reporter=text npm test",
45+
"version": "node tool/version-changes.js"
4546
}
4647
}

tool/version-changes.js

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/usr/bin/env node
2+
var fs = require('fs');
3+
var path = require('path');
4+
5+
var changesFilePath = path.join(__dirname, '..', 'Changes.md');
6+
var changesFileContents = fs.readFileSync(changesFilePath, 'utf-8');
7+
var changesHeadRegexp = /^## HEAD$/m;
8+
var date = getLocaleDate();
9+
var version = process.env.npm_package_version;
10+
11+
if (!changesHeadRegexp.test(changesFileContents)) {
12+
console.error('Changes.md missing version marker.');
13+
process.exit(1);
14+
}
15+
16+
fs.writeFileSync(changesFilePath,
17+
changesFileContents.replace(changesHeadRegexp, '## v' + version + ' (' + date + ')'));
18+
19+
function getLocaleDate() {
20+
var now = new Date();
21+
22+
return zeroPad(now.getFullYear(), 4) + '-' +
23+
zeroPad(now.getMonth() + 1, 2) + '-' +
24+
zeroPad(now.getDate(), 2);
25+
}
26+
27+
function zeroPad(number, length) {
28+
number = number.toString();
29+
30+
while (number.length < length) {
31+
number = '0' + number;
32+
}
33+
34+
return number;
35+
}

0 commit comments

Comments
 (0)