mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
Pass server extraEnv to isValidExecutable
This commit is contained in:
parent
1b678231d7
commit
33f9250d21
2 changed files with 7 additions and 3 deletions
|
@ -20,7 +20,7 @@ export async function bootstrap(
|
|||
|
||||
log.info("Using server binary at", path);
|
||||
|
||||
if (!isValidExecutable(path)) {
|
||||
if (!isValidExecutable(path, config.serverExtraEnv)) {
|
||||
if (config.serverPath) {
|
||||
throw new Error(`Failed to execute ${path} --version. \`config.server.path\` or \`config.serverPath\` has been set explicitly.\
|
||||
Consider removing this config or making a valid server binary available at that path.`);
|
||||
|
|
|
@ -2,6 +2,7 @@ import * as vscode from "vscode";
|
|||
import { strict as nativeAssert } from "assert";
|
||||
import { exec, type ExecOptions, spawnSync } from "child_process";
|
||||
import { inspect } from "util";
|
||||
import { Env } from "./client";
|
||||
|
||||
export function assert(condition: boolean, explanation: string): asserts condition {
|
||||
try {
|
||||
|
@ -93,10 +94,13 @@ export function isDocumentInWorkspace(document: RustDocument): boolean {
|
|||
return false;
|
||||
}
|
||||
|
||||
export function isValidExecutable(path: string): boolean {
|
||||
export function isValidExecutable(path: string, extraEnv: Env): boolean {
|
||||
log.debug("Checking availability of a binary at", path);
|
||||
|
||||
const res = spawnSync(path, ["--version"], { encoding: "utf8" });
|
||||
const res = spawnSync(path, ["--version"], {
|
||||
encoding: "utf8",
|
||||
env: { ...process.env, ...extraEnv },
|
||||
});
|
||||
|
||||
const printOutput = res.error ? log.warn : log.info;
|
||||
printOutput(path, "--version:", res);
|
||||
|
|
Loading…
Reference in a new issue