LouisLam
4 years ago
3 changed files with 71 additions and 40 deletions
@ -0,0 +1,70 @@ |
|||||
|
/** |
||||
|
* String.prototype.replaceAll() polyfill |
||||
|
* https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
|
||||
|
* @author Chris Ferdinandi |
||||
|
* @license MIT |
||||
|
*/ |
||||
|
if (!String.prototype.replaceAll) { |
||||
|
String.prototype.replaceAll = function(str, newStr) { |
||||
|
|
||||
|
// If a regex pattern
|
||||
|
if (Object.prototype.toString.call(str).toLowerCase() === "[object regexp]") { |
||||
|
return this.replace(str, newStr); |
||||
|
} |
||||
|
|
||||
|
// If a string
|
||||
|
return this.replace(new RegExp(str, "g"), newStr); |
||||
|
|
||||
|
}; |
||||
|
} |
||||
|
|
||||
|
const pkg = require("../package.json"); |
||||
|
const fs = require("fs"); |
||||
|
const child_process = require("child_process"); |
||||
|
const oldVersion = pkg.version; |
||||
|
const newVersion = process.argv[2]; |
||||
|
|
||||
|
console.log("Old Version: " + oldVersion); |
||||
|
console.log("New Version: " + newVersion); |
||||
|
|
||||
|
if (! newVersion) { |
||||
|
console.error("invalid version"); |
||||
|
process.exit(1); |
||||
|
} |
||||
|
|
||||
|
const exists = tagExists(newVersion); |
||||
|
|
||||
|
if (! exists) { |
||||
|
// Process package.json
|
||||
|
pkg.version = newVersion; |
||||
|
pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion); |
||||
|
pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion); |
||||
|
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n"); |
||||
|
|
||||
|
// Process README.md
|
||||
|
fs.writeFileSync("README.md", fs.readFileSync("README.md", "utf8").replaceAll(oldVersion, newVersion)); |
||||
|
|
||||
|
//commit(newVersion);
|
||||
|
//tag(newVersion);
|
||||
|
} else { |
||||
|
console.log("version exists") |
||||
|
} |
||||
|
|
||||
|
function commit(version) { |
||||
|
let msg = "update to " + version; |
||||
|
child_process.spawnSync("git", ["commit", "-m", msg]); |
||||
|
} |
||||
|
|
||||
|
function tag(version) { |
||||
|
child_process.spawnSync("git", ["tag", version]); |
||||
|
} |
||||
|
|
||||
|
function tagExists(version) { |
||||
|
if (! version) { |
||||
|
throw new Error("invalid version"); |
||||
|
} |
||||
|
|
||||
|
let res = child_process.spawnSync("git", ["tag", "-l", version]); |
||||
|
|
||||
|
return res.stdout.toString().trim() === version; |
||||
|
} |
@ -1,39 +0,0 @@ |
|||||
/** |
|
||||
* String.prototype.replaceAll() polyfill |
|
||||
* https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
|
|
||||
* @author Chris Ferdinandi |
|
||||
* @license MIT |
|
||||
*/ |
|
||||
if (!String.prototype.replaceAll) { |
|
||||
String.prototype.replaceAll = function(str, newStr){ |
|
||||
|
|
||||
// If a regex pattern
|
|
||||
if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') { |
|
||||
return this.replace(str, newStr); |
|
||||
} |
|
||||
|
|
||||
// If a string
|
|
||||
return this.replace(new RegExp(str, 'g'), newStr); |
|
||||
|
|
||||
}; |
|
||||
} |
|
||||
|
|
||||
const pkg = require('../package.json'); |
|
||||
const fs = require("fs"); |
|
||||
const oldVersion = pkg.version |
|
||||
const newVersion = process.argv[2] |
|
||||
|
|
||||
console.log("Old Version: " + oldVersion) |
|
||||
console.log("New Version: " + newVersion) |
|
||||
|
|
||||
if (newVersion) { |
|
||||
// Process package.json
|
|
||||
pkg.version = newVersion |
|
||||
pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion) |
|
||||
pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion) |
|
||||
fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n") |
|
||||
|
|
||||
// Process README.md
|
|
||||
fs.writeFileSync("README.md", fs.readFileSync("README.md", 'utf8').replaceAll(oldVersion, newVersion)) |
|
||||
} |
|
||||
|
|
Loading…
Reference in new issue