From d08cb709ab25a0ab1584ba09386619217ba70900 Mon Sep 17 00:00:00 2001 From: DuProcess <273172371+DuProcess@users.noreply.github.com> Date: Thu, 16 Jul 2026 23:01:28 -0400 Subject: [PATCH] Report Windows installer PATH status accurately --- install.ps1 | 10 +++++++++- tests/release_scripts.rs | 8 ++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/install.ps1 b/install.ps1 index 7598142..be8a354 100644 --- a/install.ps1 +++ b/install.ps1 @@ -458,6 +458,14 @@ function Write-Utf8NoBom($Path, $Content) { [System.IO.File]::WriteAllText($Path, $Content, $encoding) } +function Write-PathStatus($PathToCheck) { + if (PathList-Contains $env:Path $PathToCheck) { + Write-Info "Current terminal PATH includes Dosh." + } else { + Write-Info "Open a new terminal if dosh is not found on PATH." + } +} + $bindir = Normalize-PathForCompare (Join-Path $Prefix "bin") $configDir = Normalize-PathForCompare (Join-Path $HOME ".config\dosh") New-Item -ItemType Directory -Force -Path $bindir, $configDir | Out-Null @@ -644,4 +652,4 @@ Write-Info "Client config:" Write-Info " $configDir\client.toml" Write-Info " $configDir\hosts.toml" Write-Info "" -Write-Info "Open a new terminal for PATH changes to apply." +Write-PathStatus $bindir diff --git a/tests/release_scripts.rs b/tests/release_scripts.rs index 7856b63..4d70436 100644 --- a/tests/release_scripts.rs +++ b/tests/release_scripts.rs @@ -377,6 +377,7 @@ fn windows_installer_adds_user_path_idempotently() { let ps1 = include_str!("../install.ps1"); assert!(ps1.contains("function Add-UserPath($PathToAdd)")); assert!(ps1.contains("function PathList-Contains($PathValue, $PathToFind)")); + assert!(ps1.contains("function Write-PathStatus($PathToCheck)")); assert!(ps1.contains("$bindir = Normalize-PathForCompare (Join-Path $Prefix \"bin\")")); assert!(ps1.contains("if ($env:DOSH_INSTALL_BINDIR_FILE)")); assert!(ps1.contains("Write-Utf8NoBom $env:DOSH_INSTALL_BINDIR_FILE $bindir")); @@ -397,6 +398,13 @@ fn windows_installer_adds_user_path_idempotently() { "Windows installer must not write a leading semicolon when user PATH is empty" ); assert!(ps1.contains("Add-UserPath $bindir")); + assert!(ps1.contains("Write-PathStatus $bindir")); + assert!(ps1.contains("Current terminal PATH includes Dosh.")); + assert!(ps1.contains("Open a new terminal if dosh is not found on PATH.")); + assert!( + !ps1.contains("Open a new terminal for PATH changes to apply."), + "Windows installer should not always claim a new terminal is required" + ); } #[test]