diff --git a/scripts/version.js b/scripts/version.js index d153ab1b..301e1aaf 100755 --- a/scripts/version.js +++ b/scripts/version.js @@ -1,6 +1,7 @@ #!/usr/bin/env node const { exec } = require("child_process") +const fs = require("fs") function bump_version(versionstr, component = 2) { const versionarr = versionstr.split(".") @@ -12,21 +13,37 @@ function bump_version(versionstr, component = 2) { } async function add_beta(versionstr) { - return new Promise((resolve, err) => { - exec("git rev-list --count HEAD", (execerr, stdout, stderr) => { - if (execerr) err(execerr) - resolve(versionstr + "pre" + stdout.trim()) + await fs.promises.mkdir(".build_cache", {recursive: true}) + try { + await fs.promises.access(".git") + await new Promise((resolve, err) => { + exec("git rev-list --count HEAD > .build_cache/count", (execerr, stdout, stderr) => { + if (execerr) err(execerr) + resolve(stdout.trim()) + }) }) - }) + } + catch { + ; // Not in a git directory - don't do anything + } + return versionstr + "pre" + (await fs.promises.readFile(".build_cache/count", {encoding: "utf8"})).trim() } async function get_hash() { - return new Promise((resolve, err) => { - exec("git rev-parse --short HEAD", (execerr, stdout, stderr) => { - if (execerr) err(execerr) - resolve(stdout.trim()) + await fs.promises.mkdir(".build_cache", {recursive: true}) + try { + await fs.promises.access(".git") + await new Promise((resolve, err) => { + exec("git rev-parse --short HEAD > .build_cache/hash", (execerr, stdout, stderr) => { + if (execerr) err(execerr) + resolve(stdout.trim()) + }) }) - }) + } + catch { + ; // Not in a git directory - don't do anything + } + return (await fs.promises.readFile(".build_cache/hash", {encoding: "utf8"})).trim() } function make_update_json(versionstr) { @@ -102,7 +119,7 @@ async function main() { make_update_json(manifest.version), ) } catch(e) { - console.warn("updates.json wasn't updated: " + e) + console.warn("Unless you're the buildbot, ignore this error: " + e) } // Save manifest.json