diff options
Diffstat (limited to 'editors/code/src/util.ts')
-rw-r--r-- | editors/code/src/util.ts | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/editors/code/src/util.ts b/editors/code/src/util.ts index 6f91f81d6..127a9e911 100644 --- a/editors/code/src/util.ts +++ b/editors/code/src/util.ts | |||
@@ -1,6 +1,7 @@ | |||
1 | import * as lc from "vscode-languageclient"; | 1 | import * as lc from "vscode-languageclient"; |
2 | import * as vscode from "vscode"; | 2 | import * as vscode from "vscode"; |
3 | import { strict as nativeAssert } from "assert"; | 3 | import { strict as nativeAssert } from "assert"; |
4 | import { spawnSync } from "child_process"; | ||
4 | 5 | ||
5 | export function assert(condition: boolean, explanation: string): asserts condition { | 6 | export function assert(condition: boolean, explanation: string): asserts condition { |
6 | try { | 7 | try { |
@@ -82,3 +83,13 @@ export function isRustDocument(document: vscode.TextDocument): document is RustD | |||
82 | export function isRustEditor(editor: vscode.TextEditor): editor is RustEditor { | 83 | export function isRustEditor(editor: vscode.TextEditor): editor is RustEditor { |
83 | return isRustDocument(editor.document); | 84 | return isRustDocument(editor.document); |
84 | } | 85 | } |
86 | |||
87 | export function isValidExecutable(path: string): boolean { | ||
88 | log.debug("Checking availability of a binary at", path); | ||
89 | |||
90 | const res = spawnSync(path, ["--version"], { encoding: 'utf8' }); | ||
91 | |||
92 | log.debug(res, "--version output:", res.output); | ||
93 | |||
94 | return res.status === 0; | ||
95 | } | ||