Fix spawning code-server within code-server (#4590)

* Remove extra VS Code CLI spawn

We already spawn VS Code's CLI when necessary in the lines below.
Having the CLI spawn unconditionally when in a VS Code environment makes
it impossible to run code-server within code-server (for example to
develop it).

* Update VS Code

This sanitizes our environment variables so code-server does not always
think it is a child spawn.

Fixes https://github.com/cdr/code-server/issues/4519.
This commit is contained in:
Asher 2021-12-07 18:20:57 -06:00 committed by GitHub
parent c3eb9b800e
commit 9d9f3a41ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 4 additions and 23 deletions

View File

@ -1,32 +1,13 @@
import { logger } from "@coder/logger" import { logger } from "@coder/logger"
import { optionDescriptions, parse, readConfigFile, setDefaults, shouldOpenInExistingInstance } from "./cli" import { optionDescriptions, parse, readConfigFile, setDefaults, shouldOpenInExistingInstance } from "./cli"
import { commit, pkgName, version } from "./constants" import { commit, version } from "./constants"
import { openInExistingInstance, runCodeServer, runVsCodeCli, shouldSpawnCliProcess } from "./main" import { openInExistingInstance, runCodeServer, runVsCodeCli, shouldSpawnCliProcess } from "./main"
import { monkeyPatchProxyProtocols } from "./proxy_agent" import { monkeyPatchProxyProtocols } from "./proxy_agent"
import { loadAMDModule } from "./util"
import { isChild, wrapper } from "./wrapper" import { isChild, wrapper } from "./wrapper"
const cliPipe = process.env["VSCODE_IPC_HOOK_CLI"] as string
const cliCommand = process.env["VSCODE_CLIENT_COMMAND"] as string
async function entry(): Promise<void> { async function entry(): Promise<void> {
monkeyPatchProxyProtocols() monkeyPatchProxyProtocols()
if (cliPipe || cliCommand) {
const remoteAgentMain = await loadAMDModule<CodeServerLib.RemoteCLIMain>("vs/server/remoteCli", "main")
remoteAgentMain(
{
productName: pkgName,
version,
commit,
executableName: pkgName,
},
process.argv.slice(2),
)
return
}
// There's no need to check flags like --help or to spawn in an existing // There's no need to check flags like --help or to spawn in an existing
// instance for the child process because these would have already happened in // instance for the child process because these would have already happened in
// the parent and the child wouldn't have been spawned. We also get the // the parent and the child wouldn't have been spawned. We also get the

2
vendor/package.json vendored
View File

@ -7,6 +7,6 @@
"postinstall": "./postinstall.sh" "postinstall": "./postinstall.sh"
}, },
"devDependencies": { "devDependencies": {
"code-oss-dev": "cdr/vscode#5e0c6f3b95ed032e62c49101ae502a46c62ef202" "code-oss-dev": "cdr/vscode#c2a251c6afaa13fbebf97fcd8a68192f8cf46031"
} }
} }

4
vendor/yarn.lock vendored
View File

@ -296,9 +296,9 @@ clone-response@^1.0.2:
dependencies: dependencies:
mimic-response "^1.0.0" mimic-response "^1.0.0"
code-oss-dev@cdr/vscode#5e0c6f3b95ed032e62c49101ae502a46c62ef202: code-oss-dev@cdr/vscode#c2a251c6afaa13fbebf97fcd8a68192f8cf46031:
version "1.61.1" version "1.61.1"
resolved "https://codeload.github.com/cdr/vscode/tar.gz/5e0c6f3b95ed032e62c49101ae502a46c62ef202" resolved "https://codeload.github.com/cdr/vscode/tar.gz/c2a251c6afaa13fbebf97fcd8a68192f8cf46031"
dependencies: dependencies:
"@microsoft/applicationinsights-web" "^2.6.4" "@microsoft/applicationinsights-web" "^2.6.4"
"@vscode/sqlite3" "4.0.12" "@vscode/sqlite3" "4.0.12"