fix: tolerate npm stderr in Windows Parallels update smoke

This commit is contained in:
Peter Steinberger
2026-03-28 18:58:52 +00:00
parent d1b0f8e8e2
commit 8ea4c4a6ba

View File

@@ -186,18 +186,25 @@ function Invoke-Logged {
[Parameter(Mandatory = $true)][scriptblock]$Command
)
$output = $null
$previousErrorActionPreference = $ErrorActionPreference
$previousNativeErrorPreference = $PSNativeCommandUseErrorActionPreference
try {
$ErrorActionPreference = 'Continue'
$PSNativeCommandUseErrorActionPreference = $false
& $Command *>> $LogPath
# Merge native stderr into stdout before logging so npm/openclaw warnings do not
# surface as PowerShell error records and abort a healthy in-place update.
$output = & $Command *>&1
$exitCode = $LASTEXITCODE
} finally {
$ErrorActionPreference = $previousErrorActionPreference
$PSNativeCommandUseErrorActionPreference = $previousNativeErrorPreference
}
if ($null -ne $output) {
$output | Tee-Object -FilePath $LogPath -Append | Out-Null
}
if ($exitCode -ne 0) {
throw "$Label failed with exit code $exitCode"
}
@@ -214,7 +221,7 @@ function Invoke-CaptureLogged {
try {
$ErrorActionPreference = 'Continue'
$PSNativeCommandUseErrorActionPreference = $false
$output = & $Command 2>&1
$output = & $Command *>&1
$exitCode = $LASTEXITCODE
} finally {
$ErrorActionPreference = $previousErrorActionPreference