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
|
ifdef ComSpec
|
||||||
BIN := $(subst /,\,node_modules/.bin/)
|
BIN := $(subst /,\,node_modules/.bin/)
|
||||||
RMDIR := -rmdir /s /q
|
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 := node tools/cat.js
|
||||||
cat_deps := 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)))))
|
capitalized = $(filter-out a,$(foreach x,$1,$(subst a $(x),,$(sort a $(x)))))
|
||||||
|
|
||||||
parts := \
|
parts := \
|
||||||
@ -206,9 +207,13 @@ install.json :
|
|||||||
node tools/install.js
|
node tools/install.js
|
||||||
echo -> $@
|
echo -> $@
|
||||||
|
|
||||||
|
.events/CHANGELOG : version.json | .events
|
||||||
|
node tools/updcl.js
|
||||||
|
echo -> $@
|
||||||
|
|
||||||
.SECONDARY :
|
.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 :
|
clean :
|
||||||
$(RMDIR) tmp testbuilds .events
|
$(RMDIR) tmp testbuilds .events
|
||||||
@ -226,3 +231,12 @@ release : $(release)
|
|||||||
jshint : $(jshint)
|
jshint : $(jshint)
|
||||||
|
|
||||||
install : .events/install
|
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": {
|
"devDependencies": {
|
||||||
"coffee-script": "1.9.3",
|
"coffee-script": "1.9.3",
|
||||||
"crx": "^3.0.3",
|
"crx": "^3.0.3",
|
||||||
|
"dateformat": "^1.0.12",
|
||||||
"esprima": "^2.7.2",
|
"esprima": "^2.7.2",
|
||||||
"font-awesome": "4.5.0",
|
"font-awesome": "4.5.0",
|
||||||
"grunt": "^1.0.1",
|
"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