authorgravatar for maria@kuuro.netmaria <maria@kuuro.net> 2026-10-04 08:21:55-03:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-04 08:21:55-03:00
loge01e58916fa51ec52389cabba1b5fbba6344723d
tree9e979eed3a893f4c9af0c64075d1ac86195295ec
parentc8d7d50a73793b6c1d43ea23211e89bbd8f0c910
signature Signed by PGP key B5690EEEBB952194

fix(desktop): print version before initializing the app (#15440)


1 files changed, 11 insertions(+), 0 deletions(-)

apps/desktop/src/main.ts+11
...@@ -8,6 +8,8 @@ for (const stream of [process.stdout, process.stderr]) {...@@ -8,6 +8,8 @@ for (const stream of [process.stdout, process.stderr]) {
8import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient";8import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient";
9import * as NodeRuntime from "@effect/platform-node/NodeRuntime";9import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
10import * as NodeServices from "@effect/platform-node/NodeServices";10import * as NodeServices from "@effect/platform-node/NodeServices";
11// @effect-diagnostics-next-line nodeBuiltinImport:off - Version output must flush before Electron exits, without acquiring the runtime.
12import * as NodeFS from "node:fs";
11import * as NodeOS from "node:os";13import * as NodeOS from "node:os";
12import * as Effect from "effect/Effect";14import * as Effect from "effect/Effect";
13import * as Layer from "effect/Layer";15import * as Layer from "effect/Layer";
...@@ -69,6 +71,15 @@ import * as DesktopWslBackend from "./wsl/DesktopWslBackend.ts";...@@ -69,6 +71,15 @@ import * as DesktopWslBackend from "./wsl/DesktopWslBackend.ts";
69import * as DesktopWslEnvironment from "./wsl/DesktopWslEnvironment.ts";71import * as DesktopWslEnvironment from "./wsl/DesktopWslEnvironment.ts";
70import * as DesktopWslServerTree from "./wsl/DesktopWslServerTree.ts";72import * as DesktopWslServerTree from "./wsl/DesktopWslServerTree.ts";
7173
74if (process.argv.includes("--version")) {
75 try {
76 NodeFS.writeSync(process.stdout.fd, `${Electron.app.getVersion()}\n`);
77 } catch (error) {
78 if (!(error instanceof Error) || !("code" in error) || error.code !== "EPIPE") throw error;
79 }
80 Electron.app.exit(0);
81}
82
72const desktopEnvironmentLayer = Layer.unwrap(83const desktopEnvironmentLayer = Layer.unwrap(
73 Effect.gen(function* () {84 Effect.gen(function* () {
74 const metadata = yield* Effect.service(ElectronApp.ElectronApp).pipe(85 const metadata = yield* Effect.service(ElectronApp.ElectronApp).pipe(