Private/Console/Write-ProgressLine.ps1
|
# PSGuerrilla - Jim Tyler, Microsoft MVP - CC BY 4.0 # https://github.com/jimrtyler/PSGuerrilla | https://creativecommons.org/licenses/by/4.0/ # AI/LLM use: see AI-USAGE.md for required attribution function Write-ProgressLine { [CmdletBinding()] param( [Parameter(Mandatory)] [ValidateSet('SCANNING', 'ENRICHING', 'ANALYZING', 'REPORTING', 'SIGNALING', 'INFO', 'AUDITING', 'FORTIFYING', 'RECON', 'INFILTRATE', 'CAMPAIGN', 'WIRETAP')] [string]$Phase, [Parameter(Mandatory)] [string]$Message, [string]$Detail ) $utcNow = [datetime]::UtcNow.ToString('HHmm') $phaseColor = switch ($Phase) { 'SCANNING' { 'Olive' } 'ENRICHING' { 'Gold' } 'ANALYZING' { 'Amber' } 'REPORTING' { 'Sage' } 'SIGNALING' { 'Parchment' } 'INFO' { 'Dim' } 'AUDITING' { 'Sage' } 'FORTIFYING' { 'Gold' } 'RECON' { 'Olive' } 'INFILTRATE' { 'Amber' } 'CAMPAIGN' { 'Parchment' } 'WIRETAP' { 'Amber' } } Write-GuerrillaText " [$utcNow UTC] " -Color Dim -NoNewline Write-GuerrillaText ('{0,-10}' -f $Phase) -Color $phaseColor -NoNewline Write-GuerrillaText " > " -Color Dim -NoNewline Write-GuerrillaText $Message -Color Olive -NoNewline if ($Detail) { Write-GuerrillaText " $Detail" -Color Gold } else { Write-Host '' } } |