From e8e2760c73dce3ee5dbf14f7ac0791513bf2d38c Mon Sep 17 00:00:00 2001 From: Martin Fournier Date: Thu, 16 Dec 2021 15:23:27 -0500 Subject: [PATCH] Fix #1880: Show git commit of bundled app --- src/@types/global.d.ts | 2 ++ src/Sidebar/ui/SidebarRoot.tsx | 7 ++++++- src/Terminal/Terminal.ts | 4 ++-- src/ui/LoadingScreen.tsx | 2 +- webpack.config.js | 10 ++++++++++ 5 files changed, 21 insertions(+), 4 deletions(-) create mode 100644 src/@types/global.d.ts diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts new file mode 100644 index 000000000..ed8209ed5 --- /dev/null +++ b/src/@types/global.d.ts @@ -0,0 +1,2 @@ +// Defined by webpack on startup or compilation +declare const __COMMIT_HASH__: string; diff --git a/src/Sidebar/ui/SidebarRoot.tsx b/src/Sidebar/ui/SidebarRoot.tsx index fe457bd47..6f87cee3c 100644 --- a/src/Sidebar/ui/SidebarRoot.tsx +++ b/src/Sidebar/ui/SidebarRoot.tsx @@ -6,6 +6,7 @@ import makeStyles from "@mui/styles/makeStyles"; import MuiDrawer from "@mui/material/Drawer"; import List from "@mui/material/List"; import Divider from "@mui/material/Divider"; +import Tooltip from "@mui/material/Tooltip"; import ChevronLeftIcon from "@mui/icons-material/ChevronLeft"; import ChevronRightIcon from "@mui/icons-material/ChevronRight"; import ListItem from "@mui/material/ListItem"; @@ -337,7 +338,11 @@ export function SidebarRoot(props: IProps): React.ReactElement { {!open ? : } - Bitburner v{CONSTANTS.VersionString}} /> + + Bitburner v{CONSTANTS.VersionString} + + } /> diff --git a/src/Terminal/Terminal.ts b/src/Terminal/Terminal.ts index f9b62c8ba..5eb44a32f 100644 --- a/src/Terminal/Terminal.ts +++ b/src/Terminal/Terminal.ts @@ -77,7 +77,7 @@ export class Terminal implements ITerminal { commandHistory: string[] = []; commandHistoryIndex = 0; - outputHistory: (Output | Link | RawOutput)[] = [new Output(`Bitburner v${CONSTANTS.VersionString}`, "primary")]; + outputHistory: (Output | Link | RawOutput)[] = [new Output(`Bitburner v${CONSTANTS.VersionString} (${__COMMIT_HASH__})`, "primary")]; // True if a Coding Contract prompt is opened contractOpen = false; @@ -555,7 +555,7 @@ export class Terminal implements ITerminal { } clear(): void { - this.outputHistory = [new Output(`Bitburner v${CONSTANTS.VersionString}`, "primary")]; + this.outputHistory = [new Output(`Bitburner v${CONSTANTS.VersionString} (${__COMMIT_HASH__})`, "primary")]; TerminalEvents.emit(); TerminalClearEvents.emit(); } diff --git a/src/ui/LoadingScreen.tsx b/src/ui/LoadingScreen.tsx index 56361f383..f1404fe6b 100644 --- a/src/ui/LoadingScreen.tsx +++ b/src/ui/LoadingScreen.tsx @@ -69,7 +69,7 @@ export function LoadingScreen(): React.ReactElement { - Loading Bitburner v{CONSTANTS.VersionString} + Loading Bitburner v{CONSTANTS.VersionString} ({__COMMIT_HASH__}) {show && ( diff --git a/webpack.config.js b/webpack.config.js index 25603b11e..06629b8ad 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -42,6 +42,13 @@ module.exports = (env, argv) => { }; } + // Get the current commit hash to inject into the app + // https://stackoverflow.com/a/38401256 + const commitHash = require('child_process') + .execSync('git rev-parse --short HEAD') + .toString() + .trim(); + return { plugins: [ new webpack.DefinePlugin({ @@ -105,6 +112,9 @@ module.exports = (env, argv) => { }, }, }), + new webpack.DefinePlugin({ + __COMMIT_HASH__: JSON.stringify(commitHash) + }), // In dev mode, use a faster method of create sourcemaps // while keeping lines/columns accurate isDevServer &&