diff options
Diffstat (limited to 'extra/update-wiki-version.js')
-rw-r--r-- | extra/update-wiki-version.js | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/extra/update-wiki-version.js b/extra/update-wiki-version.js new file mode 100644 index 0000000..f6c9612 --- /dev/null +++ b/extra/update-wiki-version.js @@ -0,0 +1,58 @@ +const childProcess = require("child_process"); +const fs = require("fs"); + +const newVersion = process.env.RELEASE_VERSION; + +if (!newVersion) { + console.log("Missing version"); + process.exit(1); +} + +updateWiki(newVersion); + +/** + * Update the wiki with new version number + * @param {string} newVersion Version to update to + * @returns {void} + */ +function updateWiki(newVersion) { + const wikiDir = "./tmp/wiki"; + const howToUpdateFilename = "./tmp/wiki/🆙-How-to-Update.md"; + + safeDelete(wikiDir); + + childProcess.spawnSync("git", [ "clone", "https://github.com/louislam/uptime-kuma.wiki.git", wikiDir ]); + let content = fs.readFileSync(howToUpdateFilename).toString(); + + // Replace the version: https://regex101.com/r/hmj2Bc/1 + content = content.replace(/(git checkout )([^\s]+)/, `$1${newVersion}`); + fs.writeFileSync(howToUpdateFilename, content); + + childProcess.spawnSync("git", [ "add", "-A" ], { + cwd: wikiDir, + }); + + childProcess.spawnSync("git", [ "commit", "-m", `Update to ${newVersion}` ], { + cwd: wikiDir, + }); + + console.log("Pushing to Github"); + childProcess.spawnSync("git", [ "push" ], { + cwd: wikiDir, + }); + + safeDelete(wikiDir); +} + +/** + * Check if a directory exists and then delete it + * @param {string} dir Directory to delete + * @returns {void} + */ +function safeDelete(dir) { + if (fs.existsSync(dir)) { + fs.rm(dir, { + recursive: true, + }); + } +} |