private/StatusMessage/Write-StatusMessageToConsole.ps1
|
function Write-StatusMessageToConsole { <# .DESCRIPTION Writes a formatted status message to the console. #> [OutputType([HashTable])] [CmdletBinding()] param ( [Parameter(Mandatory,ValueFromPipeline)] [HashTable] $MessageObject ) process { try { $bannerColor = ( $MessageObject.ColorBanners ) ? @{ ForegroundColor = $MessageObject.MessageColor } : @{ ForegroundColor = 'White' } if ( $MessageObject.PreSpace ) { Write-Host '' } if ( $MessageObject.MessageBanners ) { Write-Host $MessageObject.MessageBanners @bannerColor } if ( $null -eq $MessageObject.DebugObject ) { $MessageObject.Message = $MessageObject.MessagePrefix + $MessageObject.Message if ( $MessageObject.IncludeLastCall ) { $MessageObject.Message = $MessageObject.Message + ' ' + $MessageObject.InvocationMessage } Write-Host $MessageObject.Message -ForegroundColor $MessageObject.MessageColor -NoNewline:$MessageObject.NoNewline } else { $convertParams = @{ Object = $MessageObject.DebugObject MaxDepth = $MessageObject.MaxRecursionDepth MultiLinePrefix = $MessageObject.DebugObjectPrefix } $value, $multiLine = ConvertTo-MessageString @convertParams -r if ( $multiLine ) { $MessageObject.Message = $MessageObject.MessagePrefix + $MessageObject.Message + '[' + $MessageObject.DebugObject.GetType().Name + ']' + $value Write-Host $MessageObject.Message -ForegroundColor $MessageObject.MessageColor } else { $MessageObject.Message = $MessageObject.MessagePrefix + $MessageObject.Message + $value Write-Host $MessageObject.Message -ForegroundColor $MessageObject.MessageColor } } if ( $MessageObject.MessageBanners ) { Write-Host $MessageObject.MessageBanners @bannerColor } if ( $MessageObject.DoubleSpace ) { Write-Host '' } } catch { Write-ExceptionMessage -e $_ } } } |