Unnamed repository; edit this file 'description' to name the repository.
Diffstat (limited to 'editors/code/src/config.ts')
-rw-r--r--editors/code/src/config.ts25
1 files changed, 24 insertions, 1 deletions
diff --git a/editors/code/src/config.ts b/editors/code/src/config.ts
index 87cc2a395b..cfbdd69665 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;