diff options
Diffstat (limited to 'editors/code/src/toolchain.ts')
-rw-r--r-- | editors/code/src/toolchain.ts | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/editors/code/src/toolchain.ts b/editors/code/src/toolchain.ts index 5725bcafe..68826c478 100644 --- a/editors/code/src/toolchain.ts +++ b/editors/code/src/toolchain.ts | |||
@@ -129,6 +129,16 @@ export function getSysroot(dir: string): Promise<string> { | |||
129 | return execute(`${rustcPath} --print sysroot`, { cwd: dir }); | 129 | return execute(`${rustcPath} --print sysroot`, { cwd: dir }); |
130 | } | 130 | } |
131 | 131 | ||
132 | export async function getRustcId(dir: string): Promise<string> { | ||
133 | const rustcPath = getPathForExecutable("rustc"); | ||
134 | |||
135 | // do not memoize the result because the toolchain may change between runs | ||
136 | const data = await execute(`${rustcPath} -V -v`, { cwd: dir }); | ||
137 | const rx = /commit-hash:\s(.*)$/m.compile(); | ||
138 | |||
139 | return rx.exec(data)![1]; | ||
140 | } | ||
141 | |||
132 | /** Mirrors `toolchain::cargo()` implementation */ | 142 | /** Mirrors `toolchain::cargo()` implementation */ |
133 | export function cargoPath(): string { | 143 | export function cargoPath(): string { |
134 | return getPathForExecutable("cargo"); | 144 | return getPathForExecutable("cargo"); |