Skip to content

Commit 5d315c1

Browse files
committed
fix: deduplicate PATH entries (fix #184)
1 parent 9f44a3d commit 5d315c1

1 file changed

Lines changed: 14 additions & 3 deletions

File tree

src/providers/envProvider.ts

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import path from "node:path";
12
import * as vscode from "vscode";
23
import {
34
MISE_COPY_ENV_VARIABLE_NAME,
@@ -334,12 +335,22 @@ function updateEnvironment(
334335
context.environmentVariableCollection.description =
335336
"Provide environment variables from `mise env`";
336337
for (const [name, value] of envs.entries()) {
337-
process.env[name] = value;
338-
context.environmentVariableCollection.replace(name, value);
338+
if (name.toUpperCase() === "PATH") {
339+
const uniquePaths = Array.from(new Set(value.split(path.delimiter))).join(
340+
path.delimiter,
341+
);
342+
process.env[name] = uniquePaths;
343+
context.environmentVariableCollection.replace(name, uniquePaths);
344+
} else {
345+
process.env[name] = value;
346+
context.environmentVariableCollection.replace(name, value);
347+
}
339348
}
340349

341350
for (const [name] of removedEnvs) {
342-
process.env[name] = undefined;
351+
if (name.toUpperCase() !== "PATH") {
352+
process.env[name] = undefined;
353+
}
343354
context.environmentVariableCollection.delete(name);
344355
}
345356
}

0 commit comments

Comments
 (0)