feat(install-windows): close the terminal at the end, since its PATH is stale
A process reads PATH once, at startup, so the shell the installer ran in can never resolve ncp. The ending now says that and closes the window. Uses Stop-Process -Id $PID rather than 'exit', which only closes the window when the host was started with -File. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+22
-10
@@ -13,11 +13,11 @@
|
|||||||
|
|
||||||
Requires Windows 10/11 with winget (App Installer). No reboot needed.
|
Requires Windows 10/11 with winget (App Installer). No reboot needed.
|
||||||
.PARAMETER OwnsWindow
|
.PARAMETER OwnsWindow
|
||||||
Internal. Set only on the elevated run this script starts for itself, which
|
Internal. Set only on the elevated run this script starts for itself. That
|
||||||
gets a console window of its own - so it is allowed to close that window when
|
run has a console of its own, so a fatal error has to pause before the window
|
||||||
it finishes. Without it we assume we are a guest in someone's existing shell
|
disappears with the message on it. In a shell the user already had open the
|
||||||
and must not kill it (closing would take their session, and any transcript
|
text stays on screen, and a prompt there is a keystroke nobody asked for.
|
||||||
they were recording, with it). Not meant to be passed by hand.
|
Not meant to be passed by hand.
|
||||||
#>
|
#>
|
||||||
param(
|
param(
|
||||||
[switch]$OwnsWindow
|
[switch]$OwnsWindow
|
||||||
@@ -283,10 +283,22 @@ Write-Host " The app opens at http://localhost:8000" -ForegroundColor White
|
|||||||
Write-Host " The AI starts OFF - click 'Start AI' in the sidebar to turn it on." -ForegroundColor White
|
Write-Host " The AI starts OFF - click 'Start AI' in the sidebar to turn it on." -ForegroundColor White
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host " Terminal: open a NEW terminal (PowerShell or cmd), then run ncp help" -ForegroundColor White
|
Write-Host " Terminal: open a NEW terminal (PowerShell or cmd), then run ncp help" -ForegroundColor White
|
||||||
Write-Host " (PATH is read at process start, so open windows lack it)" -ForegroundColor DarkGray
|
|
||||||
Write-Host " ==========================================================" -ForegroundColor Green
|
Write-Host " ==========================================================" -ForegroundColor Green
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
if ($OwnsWindow) {
|
Write-Host " This window has to close for ncp to work." -ForegroundColor Yellow
|
||||||
Read-Host "Press Enter to close"
|
Write-Host " A process reads PATH once, when it starts. This shell started before" -ForegroundColor DarkGray
|
||||||
exit 0 # -File means the script ending ends powershell.exe, closing the window
|
Write-Host " the installer put management\ on PATH, so it will never see ncp no" -ForegroundColor DarkGray
|
||||||
}
|
Write-Host " matter what you run here. The next terminal you open will." -ForegroundColor DarkGray
|
||||||
|
Write-Host ""
|
||||||
|
Read-Host " Press Enter to close this window (Ctrl+C works too)"
|
||||||
|
|
||||||
|
# Stop-Process on our own PID, not `exit`: `exit` only ends the window when the
|
||||||
|
# host was started with -File. Run interactively - `& .\install-windows.ps1` from
|
||||||
|
# a shell already open, which is the common case - it would just return to the
|
||||||
|
# prompt in a session whose PATH is permanently stale. Killing the host closes
|
||||||
|
# the window either way, which is the point: the user cannot accidentally keep
|
||||||
|
# using a shell where ncp will never resolve.
|
||||||
|
# Caveat: a Start-Transcript in this window never reaches Stop-Transcript. The
|
||||||
|
# transcript is flushed as it is written, so the content survives without the
|
||||||
|
# closing footer.
|
||||||
|
Stop-Process -Id $PID
|
||||||
|
|||||||
Reference in New Issue
Block a user