1
1
function Write-NativeCommandError {
2
2
[CmdletBinding ()]
3
3
param (
4
- [System.Management.Automation.ErrorRecord ]
5
4
$InputObject
6
5
)
6
+ $resetColor = ' '
7
+ $errorColor = ' '
8
+ $accentColor = ' '
9
+
10
+ if ($Host.UI.SupportsVirtualTerminal -and ([string ]::IsNullOrEmpty($env: __SuppressAnsiEscapeSequences ))) {
11
+ $resetColor = " $ ( [char ]0x1b ) [0m"
12
+ $errorColor = if ($PSStyle.Formatting.Error ) { $PSStyle.Formatting.Error } else { " `e [1;31m" }
13
+ $accentColor = $PSStyle.Formatting.ErrorAccent
14
+ }
7
15
8
16
if ($InputObject.FullyQualifiedErrorId -eq " NativeCommandErrorMessage" ) { return }
9
17
10
- $myinv = $InputObject.InvocationInfo
11
- if ($myinv -and $myinv .MyCommand ) {
12
- switch - regex ( $myinv .MyCommand.CommandType ) {
18
+ $invoc = $InputObject.InvocationInfo
19
+ if ($invoc -and $invoc .MyCommand ) {
20
+ switch - regex ( $invoc .MyCommand.CommandType ) {
13
21
([System.Management.Automation.CommandTypes ]::ExternalScript) {
14
- if ($myinv .MyCommand.Path ) {
15
- $myinv .MyCommand.Path + " : "
22
+ if ($invoc .MyCommand.Path ) {
23
+ $accentColor + $invoc .MyCommand.Path + " : " + $resetColor
16
24
}
17
25
break
18
26
}
19
27
([System.Management.Automation.CommandTypes ]::Script) {
20
- if ($myinv .MyCommand.ScriptBlock ) {
21
- $myinv .MyCommand.ScriptBlock.ToString () + " : "
28
+ if ($invoc .MyCommand.ScriptBlock ) {
29
+ $accentColor + $invoc .MyCommand.ScriptBlock.ToString () + " : " + $resetColor
22
30
}
23
31
break
24
32
}
25
33
default {
26
- if ($myinv .InvocationName -match ' ^[&\.]?$' ) {
27
- if ($myinv .MyCommand.Name ) {
28
- $myinv .MyCommand.Name + " : "
34
+ if ($invoc .InvocationName -match ' ^[&\.]?$' ) {
35
+ if ($invoc .MyCommand.Name ) {
36
+ $accentColor + $invoc .MyCommand.Name + " : " + $resetColor
29
37
}
30
38
} else {
31
- $myinv .InvocationName + " : "
39
+ $accentColor + $invoc .InvocationName + " : " + $resetColor
32
40
}
33
41
break
34
42
}
35
43
}
36
- } elseif ($myinv -and $myinv .InvocationName ) {
37
- $myinv .InvocationName + " : "
44
+ } elseif ($invoc -and $invoc .InvocationName ) {
45
+ $accentColor + $invoc .InvocationName + " : " + $resetColor
38
46
}
39
47
}
0 commit comments