diff --git a/.eslintrc.js b/.eslintrc.js index a123939b448..c0e6647f985 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -263,6 +263,7 @@ module.exports = { 'UserParentalControlPage': 'writable', 'Windows': 'readonly', // Build time definitions + __COMMIT_SHA__: 'readonly', __JF_BUILD_VERSION__: 'readonly', __PACKAGE_JSON_NAME__: 'readonly', __PACKAGE_JSON_VERSION__: 'readonly', diff --git a/src/controllers/dashboard/dashboard.js b/src/controllers/dashboard/dashboard.js index c85fdec6d65..d47f13857a2 100644 --- a/src/controllers/dashboard/dashboard.js +++ b/src/controllers/dashboard/dashboard.js @@ -208,7 +208,12 @@ function refreshActiveRecordings(view, apiClient) { function reloadSystemInfo(view, apiClient) { view.querySelector('#buildVersion').innerText = __JF_BUILD_VERSION__; - view.querySelector('#webVersion').innerText = __PACKAGE_JSON_VERSION__; + + let webVersion = __PACKAGE_JSON_VERSION__; + if (__COMMIT_SHA__) { + webVersion += ` (${__COMMIT_SHA__})`; + } + view.querySelector('#webVersion').innerText = webVersion; queryClient .fetchQuery(getSystemInfoQuery(toApi(apiClient))) diff --git a/src/global.d.ts b/src/global.d.ts index 40a8e170f40..33af37cb182 100644 --- a/src/global.d.ts +++ b/src/global.d.ts @@ -15,6 +15,7 @@ export declare global { 'viewshow': CustomEvent; } + const __COMMIT_SHA__: string; const __JF_BUILD_VERSION__: string; const __PACKAGE_JSON_NAME__: string; const __PACKAGE_JSON_VERSION__: string; diff --git a/src/index.jsx b/src/index.jsx index 362a62cfbe9..44f24ca7828 100644 --- a/src/index.jsx +++ b/src/index.jsx @@ -60,7 +60,11 @@ function loadCoreDictionary() { function init() { // Log current version to console to help out with issue triage and debugging - console.log(`${__PACKAGE_JSON_NAME__} version ${__PACKAGE_JSON_VERSION__} build ${__JF_BUILD_VERSION__}`); + console.info( + `[${__PACKAGE_JSON_NAME__}] +version: ${__PACKAGE_JSON_VERSION__} +commit: ${__COMMIT_SHA__} +build: ${__JF_BUILD_VERSION__}`); // This is used in plugins window.Events = Events; diff --git a/webpack.common.js b/webpack.common.js index e7e5446c7ec..2964a99094e 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -23,6 +23,15 @@ const LibarchiveWasm = [ ]; const DEV_MODE = process.env.NODE_ENV !== 'production'; +let COMMIT_SHA = ''; +try { + COMMIT_SHA = require('child_process') + .execSync('git describe --always --dirty') + .toString() + .trim(); +} catch (err) { + console.warn('Failed to get commit sha. Is git installed?', err); +} const NODE_MODULES_REGEX = /[\\/]node_modules[\\/]/; @@ -48,6 +57,7 @@ const config = { }, plugins: [ new DefinePlugin({ + __COMMIT_SHA__: JSON.stringify(COMMIT_SHA), __JF_BUILD_VERSION__: JSON.stringify( process.env.WEBPACK_SERVE ? 'Dev Server' :