diff options
| author | Andrei Listochkin <andrei.listochkin@ferrous-systems.com> | 2022-05-11 13:28:08 +0100 |
|---|---|---|
| committer | Andrei Listochkin <andrei.listochkin@ferrous-systems.com> | 2022-05-11 15:50:25 +0100 |
| commit | 6c769ac00d12cc1436bdbb2bbbce80db0bb8d2d5 (patch) | |
| tree | f9e772201e405e078d34876e45ff565c2df04a6e /editors/code/src | |
| parent | a86db5d0d15f736ec25229ddde62859ea15f306e (diff) | |
| download | rust-6c769ac00d12cc1436bdbb2bbbce80db0bb8d2d5.tar.gz rust-6c769ac00d12cc1436bdbb2bbbce80db0bb8d2d5.zip | |
handle references to external environment variables
use cross-env to enable env variables on Windows
Diffstat (limited to 'editors/code/src')
| -rw-r--r-- | editors/code/src/config.ts | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts index 87cc2a395ba..cfbdd696652 100644 --- a/editors/code/src/config.ts +++ b/editors/code/src/config.ts @@ -232,7 +232,30 @@ export function substituteVariablesInEnv(env: Env): Env { })); const resolved = new Set<string>(); - // TODO: handle missing dependencies + for (const dep of missingDeps) { + const match = /(?<prefix>.*?):(?<body>.+)/.exec(dep); + if (match) { + const { prefix, body } = match.groups!; + if (prefix === 'env') { + const envName = body; + envWithDeps[dep] = { + value: process.env[envName] ?? '', + deps: [] + }; + resolved.add(dep); + } else { + // we can't handle other prefixes at the moment + // leave values as is, but still mark them as resolved + envWithDeps[dep] = { + value: '${' + dep + '}', + deps: [] + }; + resolved.add(dep); + } + } else { + // TODO: handle VSCode variables + } + } const toResolve = new Set(Object.keys(envWithDeps)); let leftToResolveSize; |
