From 4f3742755c5e9478544d7f35751555094b8fa6b3 Mon Sep 17 00:00:00 2001 From: Derek Worthen Date: Mon, 8 Apr 2024 13:06:49 -0700 Subject: [PATCH 1/2] dynamically set protocol CLI version --- .changeset/gold-insects-carry.md | 5 +++++ electron-builder.yml | 4 ++++ src/electron/configs.ts | 14 ++++++++++++++ src/electron/main.ts | 9 +++++++++ src/electron/services/CommunityService.ts | 3 ++- 5 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .changeset/gold-insects-carry.md diff --git a/.changeset/gold-insects-carry.md b/.changeset/gold-insects-carry.md new file mode 100644 index 0000000..4315bd3 --- /dev/null +++ b/.changeset/gold-insects-carry.md @@ -0,0 +1,5 @@ +--- +'gov4git-desktop-app': patch +--- + +Dynamically set protocol CLI version diff --git a/electron-builder.yml b/electron-builder.yml index ab6a43e..4be3cf1 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -33,6 +33,10 @@ extraResources: to: 'migrations' filter: - '**/*' + - from: '.' + to: '.' + filter: + - 'package.json' win: executableName: Gov4Git nsis: diff --git a/src/electron/configs.ts b/src/electron/configs.ts index b5c8d37..5cb27c7 100644 --- a/src/electron/configs.ts +++ b/src/electron/configs.ts @@ -1,3 +1,4 @@ +import { readFileSync } from 'node:fs' import { resolve } from 'node:path' import { toResolvedPath } from './lib/paths.js' @@ -13,3 +14,16 @@ export const COMMUNITY_REPO_NAME = process.env['GOV4GIT_COMMUNITY_REPO_NAME'] ?? 'gov4git-identity' export const GITHUB_OAUTH_CLIENT_ID = '912c0ab18e0f0b4a1abe' + +export let CLI_VERSION = '' + +export function setCliVersion(isPackaged: boolean) { + const packageJsonPath = resolve( + isPackaged ? process.resourcesPath : process.cwd(), + 'package.json', + ) + + const pkgJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')) + + CLI_VERSION = pkgJson['dependencies']['@gov4git/js-client'] +} diff --git a/src/electron/main.ts b/src/electron/main.ts index ee4f124..0cee948 100644 --- a/src/electron/main.ts +++ b/src/electron/main.ts @@ -11,10 +11,12 @@ import { import type { InvokeServiceProps } from '~/shared' import { + CLI_VERSION, COMMUNITY_REPO_NAME, CONFIG_PATH, DB_PATH, GITHUB_OAUTH_CLIENT_ID, + setCliVersion, } from './configs.js' import { DB, loadDb } from './db/db.js' import { migrateDb } from './db/migrate.js' @@ -41,6 +43,13 @@ services.register('log', logService) logService.info(`Gov4Git Version ${logService.getAppVersion()}`) async function setup(): Promise { + try { + logService.info(`Setting CLI Version for protocol`) + setCliVersion(app.isPackaged) + logService.info(`CLI_VERSION of protocol: ${CLI_VERSION}`) + } catch (ex) { + logService.error(`Failed to set CLI_VERSION`) + } try { logService.info(`Initializing DB: ${DB_PATH}`) const db = loadDb(DB_PATH) diff --git a/src/electron/services/CommunityService.ts b/src/electron/services/CommunityService.ts index 5b58327..efba5a2 100644 --- a/src/electron/services/CommunityService.ts +++ b/src/electron/services/CommunityService.ts @@ -3,6 +3,7 @@ import { resolve } from 'path' import { AbstractCommunityService, Expand, ServiceResponse } from '~/shared' +import { CLI_VERSION } from '../configs.js' import { DB } from '../db/db.js' import { communities, @@ -428,7 +429,7 @@ ${user.memberPublicBranch}` '--project', `${org}/${repo}`, '--release', - 'v2.2.5', + `v${CLI_VERSION}`, ] await this.govService.mustRun(command, undefined, true) From cfee8fff5a05f16ae3aa99210a94d43c42497726 Mon Sep 17 00:00:00 2001 From: Derek Worthen Date: Mon, 8 Apr 2024 13:58:46 -0700 Subject: [PATCH 2/2] fix loading package.json --- electron-builder.yml | 4 ---- src/electron/configs.ts | 15 ++------------- src/electron/main.ts | 9 +-------- tsconfig.json | 5 +++-- 4 files changed, 6 insertions(+), 27 deletions(-) diff --git a/electron-builder.yml b/electron-builder.yml index 4be3cf1..ab6a43e 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -33,10 +33,6 @@ extraResources: to: 'migrations' filter: - '**/*' - - from: '.' - to: '.' - filter: - - 'package.json' win: executableName: Gov4Git nsis: diff --git a/src/electron/configs.ts b/src/electron/configs.ts index 5cb27c7..0c600ff 100644 --- a/src/electron/configs.ts +++ b/src/electron/configs.ts @@ -1,6 +1,6 @@ -import { readFileSync } from 'node:fs' import { resolve } from 'node:path' +import * as pkgJson from '../../package.json' import { toResolvedPath } from './lib/paths.js' export const CONFIG_PATH = toResolvedPath( @@ -15,15 +15,4 @@ export const COMMUNITY_REPO_NAME = export const GITHUB_OAUTH_CLIENT_ID = '912c0ab18e0f0b4a1abe' -export let CLI_VERSION = '' - -export function setCliVersion(isPackaged: boolean) { - const packageJsonPath = resolve( - isPackaged ? process.resourcesPath : process.cwd(), - 'package.json', - ) - - const pkgJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8')) - - CLI_VERSION = pkgJson['dependencies']['@gov4git/js-client'] -} +export const CLI_VERSION = pkgJson['dependencies']['@gov4git/js-client'] diff --git a/src/electron/main.ts b/src/electron/main.ts index 0cee948..91df1d9 100644 --- a/src/electron/main.ts +++ b/src/electron/main.ts @@ -16,7 +16,6 @@ import { CONFIG_PATH, DB_PATH, GITHUB_OAUTH_CLIENT_ID, - setCliVersion, } from './configs.js' import { DB, loadDb } from './db/db.js' import { migrateDb } from './db/migrate.js' @@ -41,15 +40,9 @@ const logService = new LogService(resolve(CONFIG_PATH, 'logs.txt')) services.register('log', logService) logService.info(`Gov4Git Version ${logService.getAppVersion()}`) +logService.info(`CLI_VERSION of protocol: ${CLI_VERSION}`) async function setup(): Promise { - try { - logService.info(`Setting CLI Version for protocol`) - setCliVersion(app.isPackaged) - logService.info(`CLI_VERSION of protocol: ${CLI_VERSION}`) - } catch (ex) { - logService.error(`Failed to set CLI_VERSION`) - } try { logService.info(`Initializing DB: ${DB_PATH}`) const db = loadDb(DB_PATH) diff --git a/tsconfig.json b/tsconfig.json index 6d74679..06fdfb2 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -32,6 +32,7 @@ "noPropertyAccessFromIndexSignature": true, "noUncheckedIndexedAccess": true, "noImplicitReturns": true, - "noFallthroughCasesInSwitch": true + "noFallthroughCasesInSwitch": true, + "resolveJsonModule": true } -} +} \ No newline at end of file