70 lines
2.1 KiB
JavaScript
Executable File
70 lines
2.1 KiB
JavaScript
Executable File
#!/usr/bin/env node
|
|
var path = require('path');
|
|
var bump = require('bump-version');
|
|
var unreleased = require('unreleased');
|
|
var fs = require('fs');
|
|
|
|
function run(cmd, done) {
|
|
var exec = require('child_process').exec;
|
|
var proc = exec(cmd, done);
|
|
proc.stdout.pipe(process.stdout);
|
|
proc.stderr.pipe(process.stderr);
|
|
}
|
|
|
|
function replaceDistScriptNames(str, scriptName, version, bumpedVersion) {
|
|
var v = version.split(".");
|
|
var vb = bumpedVersion.split(".");
|
|
var regExp = new RegExp(scriptName + "-" + v[0] + "(\." + v[1] + ")?(\." + v[2] + ")?(\.min)?.js", "g");
|
|
|
|
return str.replace(regExp, function (_, minor, patch, min) {
|
|
var r = [scriptName + "-" + vb[0]];
|
|
if (minor) r.push(vb[1]);
|
|
if (patch) r.push(vb[2]);
|
|
if (min) r.push("min");
|
|
r.push("js");
|
|
return r.join(".");
|
|
});
|
|
}
|
|
|
|
function replaceDistScriptNamesInFile(filePath, scriptName, version, bumpedVersion) {
|
|
var str = fs.readFileSync(filePath, "utf8");
|
|
var bumpedStr = replaceDistScriptNames(str, scriptName, version, bumpedVersion);
|
|
fs.writeFileSync(filePath, bumpedStr);
|
|
}
|
|
|
|
try {
|
|
var version = require('../package.json').version;
|
|
var rootDir = path.resolve(__dirname, '..');
|
|
var res = bump(rootDir, process.argv.pop());
|
|
|
|
replaceDistScriptNamesInFile("README.md", "lock-next", version, res.version);
|
|
|
|
unreleased(res.version, rootDir, 'auth0/lock-next', function (err, changelog) {
|
|
if (err) { return process.exit(1); }
|
|
|
|
changelog = new Buffer(changelog + '\n\n');
|
|
var file = path.join(rootDir, 'CHANGELOG.md');
|
|
|
|
var data = fs.readFileSync(file); //read existing contents into data
|
|
var fd = fs.openSync(file, 'w+');
|
|
fs.writeSync(fd, changelog, 0, changelog.length); //write new data
|
|
fs.writeSync(fd, data, 0, data.length); //append old data
|
|
fs.close(fd);
|
|
|
|
run('git commit -am "Release: ' + res.version + '"', function (err) {
|
|
if (!err) { return process.exit(0); }
|
|
|
|
// restore original status
|
|
console.error(err.message);
|
|
run('git checkout .', function (err) {
|
|
if (err) { console.error(err.message); }
|
|
process.exit(1);
|
|
});
|
|
});
|
|
});
|
|
|
|
} catch (err) {
|
|
console.error(err.message);
|
|
process.exit(1);
|
|
}
|