diff --git a/frontend/package.json b/frontend/package.json index 10f8ce6b3..b4303e8cc 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -17,8 +17,8 @@ "build:all": "npm run build:deps && npm run build:diagnostic-ui && npm run build:setup-wizard && npm run build:ui", "start:diagnostic-ui": "npm run copy-git-hash && ionic serve --project diagnostic-ui", "start:setup-wizard": "npm run copy-git-hash && ionic serve --project setup-wizard", - "start:ui": "npm run copy-git-hash && ionic serve --project ui", - "copy-git-hash": "./update-git-hash.sh" + "start:ui": "npm run-script copy-git-hash && ionic serve --project ui", + "copy-git-hash": "node update-git-hash.js" }, "dependencies": { "@angular/animations": "^13.2.0", diff --git a/frontend/update-git-hash.js b/frontend/update-git-hash.js new file mode 100755 index 000000000..39244b65f --- /dev/null +++ b/frontend/update-git-hash.js @@ -0,0 +1,27 @@ +// @ts-check +const fs = require('fs') +const childProcess = require('child_process') + +const gitHash = String(childProcess.execSync('git rev-parse HEAD')).trim() + +/** + * @template T + * @param {() => T} fn + * @param {T} defaultValue + * @returns + */ +function catchDefault(fn, defaultValue) { + try { + return fn() + } catch { + return defaultValue + } +} + +const origConfig = catchDefault( + /** @returns {{gitHash?: string}} */ + () => JSON.parse(fs.readFileSync('./config.json')), + {}, +) +origConfig.gitHash = gitHash +fs.writeFileSync('./config.json', JSON.stringify(origConfig, null, 2)) diff --git a/frontend/update-git-hash.sh b/frontend/update-git-hash.sh deleted file mode 100755 index 0ee27313d..000000000 --- a/frontend/update-git-hash.sh +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/bash - -cd "$(dirname "$0")" - -TMP_FILE=$(mktemp) - -jq ".gitHash = \"$(git rev-parse HEAD)\"" config.json > $TMP_FILE && mv $TMP_FILE config.json