| ... | @@ -8,6 +8,8 @@ for (const stream of [process.stdout, process.stderr]) { | ... | @@ -8,6 +8,8 @@ for (const stream of [process.stdout, process.stderr]) { |
| 8 | import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient"; | 8 | import * as NodeHttpClient from "@effect/platform-node/NodeHttpClient"; |
| 9 | import * as NodeRuntime from "@effect/platform-node/NodeRuntime"; | 9 | import * as NodeRuntime from "@effect/platform-node/NodeRuntime"; |
| 10 | import * as NodeServices from "@effect/platform-node/NodeServices"; | 10 | import * 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. |
| | 12 | import * as NodeFS from "node:fs"; |
| 11 | import * as NodeOS from "node:os"; | 13 | import * as NodeOS from "node:os"; |
| 12 | import * as Effect from "effect/Effect"; | 14 | import * as Effect from "effect/Effect"; |
| 13 | import * as Layer from "effect/Layer"; | 15 | import * 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"; |
| 69 | import * as DesktopWslEnvironment from "./wsl/DesktopWslEnvironment.ts"; | 71 | import * as DesktopWslEnvironment from "./wsl/DesktopWslEnvironment.ts"; |
| 70 | import * as DesktopWslServerTree from "./wsl/DesktopWslServerTree.ts"; | 72 | import * as DesktopWslServerTree from "./wsl/DesktopWslServerTree.ts"; |
| 71 | | 73 | |
| | 74 | if (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 | |
| 72 | const desktopEnvironmentLayer = Layer.unwrap( | 83 | const 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( |