Functions/Private/Write-StatusCode.ps1
function Write-StatusCode { [CmdletBinding()] Param( [Parameter(Mandatory)] [string] $RawStatus, [Parameter()] [string] $HTTPVersionFGColour = (Get-PSReadLineOption).CommentColor, [Parameter()] [string] $StatusCodeFGColour = (Get-PSReadLineOption).StringColour, [Parameter()] [string] $StatusDescriptionFGColour = (Get-PSReadLineOption).StringColor, [Parameter()] [string] $OtherColour = (Get-PSReadLineOption).ParameterColor ) $Reset = $PSStyle.Reset $StatusRegex = '(http|HTTP)\/([\d\.]+) ([\d]{3}) (.*)' $StatusMatch = Select-String -InputObject $RawStatus -Pattern $StatusRegex if ($StatusMatch) { $HTTPPrefix = $StatusMatch.Matches[0].Groups[1].Value $HTTPVersion = $StatusMatch.Matches[0].Groups[2].Value $StatusCode = $StatusMatch.Matches[0].Groups[3].Value $StatusDescription = $StatusMatch.Matches[0].Groups[4].Value if ($null -eq $HTTPPrefix -or $null -eq $HTTPVersion -or $null -eq $StatusCode -or $null -eq $StatusDescription) { throw "Status code '$RawStatus' is in an unknown format" } Write-Output "$HTTPVersionFGColour$HTTPPrefix$Reset/$HTTPVersionFGColour$HTTPVersion $StatusCodeFGColour$StatusCode$Reset $StatusDescription" } else { throw "Status code '$RawStatus' is in an unknown format" } } |