Port version bumping from grunt to make.
This commit is contained in:
parent
213d898b1b
commit
81b0760227
20
Makefile
20
Makefile
@ -1,5 +1,3 @@
|
||||
name := 4chan-X
|
||||
|
||||
ifdef ComSpec
|
||||
BIN := $(subst /,\,node_modules/.bin/)
|
||||
RMDIR := -rmdir /s /q
|
||||
@ -23,6 +21,9 @@ template_deps := package.json tools/template.js node_modules/lodash/package.json
|
||||
cat := node tools/cat.js
|
||||
cat_deps := tools/cat.js
|
||||
|
||||
name := $(shell node -p "JSON.parse(require('fs').readFileSync('package.json')).name")
|
||||
version := $(shell node -p "JSON.parse(require('fs').readFileSync('version.json')).version")
|
||||
|
||||
capitalized = $(filter-out a,$(foreach x,$1,$(subst a $(x),,$(sort a $(x)))))
|
||||
|
||||
parts := \
|
||||
@ -206,9 +207,13 @@ install.json :
|
||||
node tools/install.js
|
||||
echo -> $@
|
||||
|
||||
.events/CHANGELOG : version.json | .events
|
||||
node tools/updcl.js
|
||||
echo -> $@
|
||||
|
||||
.SECONDARY :
|
||||
|
||||
.PHONY: default all clean cleanall script crx release jshint install
|
||||
.PHONY: default all clean cleanall script crx release jshint install tag $(foreach i,1 2 3 4,$(bump$(i)))
|
||||
|
||||
clean :
|
||||
$(RMDIR) tmp testbuilds .events
|
||||
@ -226,3 +231,12 @@ release : $(release)
|
||||
jshint : $(jshint)
|
||||
|
||||
install : .events/install
|
||||
|
||||
tag : .events/CHANGELOG $(jshint) $(release)
|
||||
git commit -am "Release $(name) v$(version)."
|
||||
git tag -a $(version) -m "$(name) v$(version)."
|
||||
|
||||
bump% :
|
||||
$(MAKE) cleanall
|
||||
node tools/bump.js $*
|
||||
$(MAKE) tag install
|
||||
|
||||
@ -49,6 +49,7 @@
|
||||
"devDependencies": {
|
||||
"coffee-script": "1.9.3",
|
||||
"crx": "^3.0.3",
|
||||
"dateformat": "^1.0.12",
|
||||
"esprima": "^2.7.2",
|
||||
"font-awesome": "4.5.0",
|
||||
"grunt": "^1.0.1",
|
||||
|
||||
26
tools/bump.js
Normal file
26
tools/bump.js
Normal file
@ -0,0 +1,26 @@
|
||||
var fs = require('fs');
|
||||
|
||||
function bump(version, level) {
|
||||
var parts = version.split('.');
|
||||
var i;
|
||||
for (i = 0; i < level; i++) {
|
||||
parts[i] = (parts[i] || '0');
|
||||
}
|
||||
parts[level-1] = +parts[level-1] + 1;
|
||||
for (i = level; i < parts.length; i++) {
|
||||
parts[i] = '0';
|
||||
}
|
||||
return parts.join('.');
|
||||
}
|
||||
|
||||
function setversion(version) {
|
||||
var data = {version: version, date: new Date()};
|
||||
fs.writeFileSync('version.json', JSON.stringify(data, null, 2));
|
||||
}
|
||||
|
||||
var level = +process.argv[2];
|
||||
var v = JSON.parse(fs.readFileSync('version.json', 'utf8'));
|
||||
var oldversion = v.version;
|
||||
var version = bump(oldversion, level);
|
||||
setversion(version);
|
||||
console.log(`Version updated from v${oldversion} to v${version}.`);
|
||||
35
tools/updcl.js
Normal file
35
tools/updcl.js
Normal file
@ -0,0 +1,35 @@
|
||||
var fs = require('fs');
|
||||
var dateFormat = require('dateformat');
|
||||
|
||||
var pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
||||
var v = JSON.parse(fs.readFileSync('version.json', 'utf8'));
|
||||
|
||||
var name = pkg.name;
|
||||
var oldVersions = pkg.meta.oldVersions;
|
||||
var version = v.version;
|
||||
var date = v.date;
|
||||
|
||||
var branch = version.replace(/\.\d+$/, '');
|
||||
var headerLevel = branch.replace(/(\.0)*$/, '').split('.').length;
|
||||
var headerPrefix = new Array(headerLevel + 1).join('#');
|
||||
var separator = `${headerPrefix} v${branch}`;
|
||||
|
||||
var today = dateFormat(date, 'yyyy-mm-dd');
|
||||
var filename = `/builds/${name}-noupdate`;
|
||||
var ffLink = `${oldVersions}${version}${filename}.user.js`;
|
||||
var crLink = `${oldVersions}${version}${filename}.crx`;
|
||||
var line = `**v${version}** *(${today})* - [[Firefox](${ffLink} \"Firefox version\")] [[Chromium](${crLink} \"Chromium version\")]`;
|
||||
|
||||
var changelog = fs.readFileSync('CHANGELOG.md', 'utf8');
|
||||
|
||||
var breakPos = changelog.indexOf(separator);
|
||||
if (breakPos < 0) throw new Error('Separator not found.');
|
||||
breakPos += separator.length;
|
||||
|
||||
var prevVersion = changelog.substr(breakPos).match(/\*\*v([\d\.]+)\*\*/)[1];
|
||||
if (prevVersion.replace(/\.\d+$/, '') !== branch) {
|
||||
line += `\n- Based on v${prevVersion}.`;
|
||||
}
|
||||
|
||||
fs.writeFileSync('CHANGELOG.md', `${changelog.substr(0, breakPos)}\n\n${line}${changelog.substr(breakPos)}`, 'utf8');
|
||||
console.log(`Changelog updated for v${version}.`);
|
||||
Loading…
x
Reference in New Issue
Block a user