diff --git a/install.ps1 b/install.ps1 index 80516ea..ea4034e 100644 --- a/install.ps1 +++ b/install.ps1 @@ -344,6 +344,9 @@ function Add-UserPath($PathToAdd) { $PathToAdd } [Environment]::SetEnvironmentVariable("Path", $next, "User") + if (-not (";$env:Path;").Contains(";$PathToAdd;")) { + $env:Path = "$PathToAdd;$env:Path" + } } function Write-Utf8NoBom($Path, $Content) { diff --git a/tests/release_scripts.rs b/tests/release_scripts.rs index 3906564..e67cba4 100644 --- a/tests/release_scripts.rs +++ b/tests/release_scripts.rs @@ -216,6 +216,8 @@ fn windows_installer_adds_user_path_idempotently() { assert!(ps1.contains("$wanted = Normalize-PathForCompare $PathToAdd")); assert!(ps1.contains("-ieq $wanted")); assert!(ps1.contains("(@($entries) + $PathToAdd) -join ';'")); + assert!(ps1.contains("(\";$env:Path;\").Contains(\";$PathToAdd;\")")); + assert!(ps1.contains("$env:Path = \"$PathToAdd;$env:Path\"")); assert!( !ps1.contains("\"$userPath;$bindir\""), "Windows installer must not write a leading semicolon when user PATH is empty"