From 465e6fc4be64bf830d2c98bc3f56c2601acef775 Mon Sep 17 00:00:00 2001 From: Shan Zhou Date: Fri, 11 Feb 2022 03:07:50 -0800 Subject: [PATCH] fix(pwsh): Use global:error[0] for most recent error in powershell (#3584) * Use global:error[0] for most recent error The current version use $error[0], which is for the module instead of the global status and is always $null, so the $lastExitCodeForPrompot is always $origLastExitCode (see https://github.com/starship/starship/issues/3485 for a related bug). It should be replaced with $global:error[0] Comments are also updated * fix(pwsh): make Semantic PR bot happy --- src/init/starship.ps1 | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/init/starship.ps1 b/src/init/starship.ps1 index 5dd6f7fc..6b9c1d29 100755 --- a/src/init/starship.ps1 +++ b/src/init/starship.ps1 @@ -87,13 +87,13 @@ $null = New-Module starship { "--jobs=$($jobs)" ) - # Whe start from the premise that the command executed correctly, which covers also the fresh console. + # We start from the premise that the command executed correctly, which covers also the fresh console. $lastExitCodeForPrompt = 0 if ($lastCmd = Get-History -Count 1) { # In case we have a False on the Dollar hook, we know there's an error. if (-not $origDollarQuestion) { - # We retrieve the InvocationInfo from the most recent error using $error[0] - $lastCmdletError = try { $error[0] | Where-Object { $_ -ne $null } | Select-Object -ExpandProperty InvocationInfo } catch { $null } + # We retrieve the InvocationInfo from the most recent error using $global:error[0] + $lastCmdletError = try { $global:error[0] | Where-Object { $_ -ne $null } | Select-Object -ExpandProperty InvocationInfo } catch { $null } # We check if the last command executed matches the line that caused the last error, in which case we know # it was an internal Powershell command, otherwise, there MUST be an error code. $lastExitCodeForPrompt = if ($null -ne $lastCmdletError -and $lastCmd.CommandLine -eq $lastCmdletError.Line) { 1 } else { $origLastExitCode }