From 5fa0a513a7118d8f6fa7efba7c2f8e01891b9cd1 Mon Sep 17 00:00:00 2001 From: Vijay A Date: Mon, 3 Jan 2022 04:46:29 +0530 Subject: Enhance 'About' dialog with more info Signed-off-by: Vijay A --- package.json | 2 ++ packages/main/esbuild.config.js | 6 ++++++ packages/main/src/index.ts | 17 +++++++++++++++++ packages/main/types/importMeta.d.ts | 3 +++ yarn.lock | 37 ++++++++++++++++++++++++++++++++++++- 5 files changed, 64 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index 6bc6b90..1a7ef71 100644 --- a/package.json +++ b/package.json @@ -50,6 +50,7 @@ "electron-builder": "^22.14.11", "esbuild": "^0.14.10", "eslint": "^8.6.0", + "git-repo-info": "^2.1.1", "jest": "^27.4.5", "rimraf": "^3.0.2", "rollup": "^2.62.0", @@ -59,6 +60,7 @@ "packageManager": "yarn@3.1.1", "dependencies": { "loglevel": "^1.8.0", + "os-name": "^5.0.1", "preload": "^0.1.0" } } diff --git a/packages/main/esbuild.config.js b/packages/main/esbuild.config.js index af52f27..500590f 100644 --- a/packages/main/esbuild.config.js +++ b/packages/main/esbuild.config.js @@ -1,3 +1,4 @@ +import getRepoInfo from 'git-repo-info'; import { node } from '../../config/buildConstants.js'; import { getConfig } from '../../config/esbuildConfig.js'; import { fileURLToDirname } from '../../config/utils.js'; @@ -8,6 +9,8 @@ if (process.env.MODE !== 'development') { externalPackages.push('electron-devtools-installer'); } +const gitInfo = getRepoInfo(); + export default getConfig({ absWorkingDir: fileURLToDirname(import.meta.url), entryPoints: [ @@ -20,4 +23,7 @@ export default getConfig({ external: externalPackages, }, { VITE_DEV_SERVER_URL: process.env.VITE_DEV_SERVER_URL || null, + GIT_SHA: gitInfo.abbreviatedSha, + GIT_BRANCH: gitInfo.branch, + BUILD_DATE: new Date().getTime(), }); diff --git a/packages/main/src/index.ts b/packages/main/src/index.ts index 19ef51b..ccfa4a1 100644 --- a/packages/main/src/index.ts +++ b/packages/main/src/index.ts @@ -25,6 +25,8 @@ import { BrowserWindow, ipcMain, } from 'electron'; +import { arch } from 'os'; +import osName from 'os-name'; import { ensureDirSync, readFile, readFileSync } from 'fs-extra'; import { autorun } from 'mobx'; import { getSnapshot, onPatch } from 'mobx-state-tree'; @@ -83,6 +85,21 @@ if (!isDevelopment) { app.userAgentFallback = userAgent; } +app.setAboutPanelOptions({ + applicationVersion: [ + `Version: ${app.getVersion()}`, + `Electron: ${process.versions.electron}`, + `Chrome: ${process.versions.chrome}`, + `Node.js: ${process.versions.node}`, + `Platform: ${osName()}`, + `Arch: ${arch()}`, + `Build date: ${new Date(Number(import.meta.env.BUILD_DATE))}`, + `Git SHA: ${import.meta.env.GIT_SHA}`, + `Git branch: ${import.meta.env.GIT_BRANCH}`, + ].join('\n'), + version: '', +}); + function getResourcePath(relativePath: string): string { return join(__dirname, relativePath); } diff --git a/packages/main/types/importMeta.d.ts b/packages/main/types/importMeta.d.ts index 3da01d3..e422c30 100644 --- a/packages/main/types/importMeta.d.ts +++ b/packages/main/types/importMeta.d.ts @@ -4,5 +4,8 @@ interface ImportMeta { MODE: string; PROD: boolean; VITE_DEV_SERVER_URL: string; + GIT_SHA: string; + GIT_BRANCH: string; + BUILD_DATE: number; } } diff --git a/yarn.lock b/yarn.lock index 505c709..22f41ed 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3757,7 +3757,7 @@ __metadata: languageName: node linkType: hard -"execa@npm:^5.0.0": +"execa@npm:^5.0.0, execa@npm:^5.1.1": version: 5.1.1 resolution: "execa@npm:5.1.1" dependencies: @@ -4084,6 +4084,13 @@ __metadata: languageName: node linkType: hard +"git-repo-info@npm:^2.1.1": + version: 2.1.1 + resolution: "git-repo-info@npm:2.1.1" + checksum: 58cedacae81bbe8fedc81d226346c472d11357d1758140ab0ee5d0c3360ad5b7a9d8613ca6e8b50d089d073e5b3f2e2893536d0cb57bced5f558dc913d5e21c6 + languageName: node + linkType: hard + "glob-parent@npm:^6.0.1": version: 6.0.2 resolution: "glob-parent@npm:6.0.2" @@ -5627,6 +5634,13 @@ __metadata: languageName: node linkType: hard +"macos-release@npm:^3.0.1": + version: 3.0.1 + resolution: "macos-release@npm:3.0.1" + checksum: 117c78e92b995bcd391cd7a35cbae122aae491ec6ef726257c7d58ab06087506b9c09d2c89c1dc11cf8fca5ade7dbfb18f8bed01702f5faf7ea5371e07405074 + languageName: node + linkType: hard + "make-dir@npm:^3.0.0": version: 3.1.0 resolution: "make-dir@npm:3.1.0" @@ -6113,6 +6127,16 @@ __metadata: languageName: node linkType: hard +"os-name@npm:^5.0.1": + version: 5.0.1 + resolution: "os-name@npm:5.0.1" + dependencies: + macos-release: ^3.0.1 + windows-release: ^5.0.1 + checksum: 7fe0db633aae8a030d0897655deede763a5b76a2b7b156e3f956e28b1c2ba9bb43565ce6b82cb4cf1c196673a80ca68b420d33450e29dd82911f3b37fc168142 + languageName: node + linkType: hard + "p-cancelable@npm:^1.0.0": version: 1.1.0 resolution: "p-cancelable@npm:1.1.0" @@ -6988,8 +7012,10 @@ __metadata: electron-builder: ^22.14.11 esbuild: ^0.14.10 eslint: ^8.6.0 + git-repo-info: ^2.1.1 jest: ^27.4.5 loglevel: ^1.8.0 + os-name: ^5.0.1 preload: ^0.1.0 rimraf: ^3.0.2 rollup: ^2.62.0 @@ -7785,6 +7811,15 @@ __metadata: languageName: node linkType: hard +"windows-release@npm:^5.0.1": + version: 5.0.1 + resolution: "windows-release@npm:5.0.1" + dependencies: + execa: ^5.1.1 + checksum: b6b403333b7b3ea31a805c287f210962d8f3191865d81d2fd3955e603ab4d6893abc746d87b7da5b2a7a044b7b18df97c948e7d5392baed1d2bc5687fbf7431d + languageName: node + linkType: hard + "word-wrap@npm:^1.2.3, word-wrap@npm:~1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" -- cgit v1.2.3