|
1 | 1 | import { field, logger } from "@coder/logger"; |
2 | 2 | import { ServerMessage, SharedProcessActive } from "@coder/protocol/src/proto"; |
| 3 | +import { preserveEnv } from "@coder/protocol"; |
3 | 4 | import { ChildProcess, fork, ForkOptions } from "child_process"; |
4 | 5 | import { randomFillSync } from "crypto"; |
5 | 6 | import * as fs from "fs"; |
@@ -174,17 +175,21 @@ const bold = (text: string | number): string | number => { |
174 | 175 | } |
175 | 176 |
|
176 | 177 | if (options.installExtension) { |
| 178 | + |
| 179 | + let forkOptions = { |
| 180 | + env: { |
| 181 | + VSCODE_ALLOW_IO: "true" |
| 182 | + } |
| 183 | + } |
| 184 | + |
| 185 | + preserveEnv(forkOptions); |
| 186 | + |
177 | 187 | const fork = forkModule("vs/code/node/cli", [ |
178 | 188 | "--user-data-dir", dataDir, |
179 | 189 | "--builtin-extensions-dir", builtInExtensionsDir, |
180 | 190 | "--extensions-dir", extensionsDir, |
181 | 191 | "--install-extension", options.installExtension, |
182 | | - ], { |
183 | | - env: { |
184 | | - VSCODE_ALLOW_IO: "true", |
185 | | - VSCODE_LOGS: process.env.VSCODE_LOGS, |
186 | | - }, |
187 | | - }, dataDir); |
| 192 | + ], forkOptions, dataDir); |
188 | 193 |
|
189 | 194 | fork.stdout.on("data", (d: Buffer) => d.toString().split("\n").forEach((l) => logger.info(l))); |
190 | 195 | fork.stderr.on("data", (d: Buffer) => d.toString().split("\n").forEach((l) => logger.error(l))); |
|
0 commit comments