From 2f04150461fbd538b09e58d8c1beb33ee0db18ce Mon Sep 17 00:00:00 2001 From: Pavel Djundik Date: Sun, 22 Jan 2023 22:08:53 +0200 Subject: [PATCH] Fix git commit not being available in dist build --- server/helper.ts | 12 ++++++------ server/server.ts | 3 +-- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/server/helper.ts b/server/helper.ts index bd5be4b8..f9fdeaeb 100644 --- a/server/helper.ts +++ b/server/helper.ts @@ -44,23 +44,23 @@ function getVersionNumber() { return pkg.version; } +let _fetchedGitCommit = false; let _gitCommit: string | null = null; function getGitCommit() { - if (_gitCommit) { + if (_fetchedGitCommit) { return _gitCommit; } - if (!fs.existsSync(path.resolve(__dirname, "..", ".git"))) { - _gitCommit = null; - return null; - } + _fetchedGitCommit = true; + // --git-dir ".git" makes git only check current directory for `.git`, and not travel upwards + // We set cwd to the location of `index.js` as soon as the process is started try { // eslint-disable-next-line @typescript-eslint/no-var-requires _gitCommit = require("child_process") .execSync( - "git rev-parse --short HEAD", // Returns hash of current commit + 'git --git-dir ".git" rev-parse --short HEAD', // Returns hash of current commit {stdio: ["ignore", "pipe", "ignore"]} ) .toString() diff --git a/server/server.ts b/server/server.ts index a0a616a8..e5b005dd 100644 --- a/server/server.ts +++ b/server/server.ts @@ -9,7 +9,6 @@ import colors from "chalk"; import net from "net"; import log from "./log"; -import pkg from "../package.json"; import Client from "./client"; import ClientManager from "./clientManager"; import Uploader from "./plugins/uploader"; @@ -885,7 +884,7 @@ function getClientConfiguration(): ClientConfiguration { config.isUpdateAvailable = changelog.isUpdateAvailable; config.applicationServerKey = manager!.webPush.vapidKeys!.publicKey; - config.version = pkg.version; + config.version = Helper.getVersionNumber(); config.gitCommit = Helper.getGitCommit(); config.themes = themes.getAll(); config.defaultTheme = Config.values.theme;