Private/_Banner.ps1
|
function Get-KritHardenBannerCanonicalPath { [CmdletBinding()] [OutputType([string])] param() $candidates = @( (Join-Path $env:USERPROFILE 'OneDrive - Kritical Pty Ltd\Kritical-Branding\public\KriticalLogo.txt'), (Join-Path $env:USERPROFILE 'OneDrive - Kritical Pty Ltd\Github-SecretsOutsideOfGitRepos\KriticalLogo.txt'), (Join-Path (Split-Path -Parent (Split-Path -Parent $PSCommandPath)) 'Assets/kritical-logo.txt') ) foreach ($p in $candidates) { if (Test-Path -LiteralPath $p) { return $p } } return $null } function Get-KritHardenBanner { <# .SYNOPSIS Returns the canonical Kritical banner. Prefers Krit.OmniFramework's Get-KritBanner if the foundation is loaded; falls back to a local copy. .NOTES Author: Joshua Finley - Kritical Pty Ltd #> [CmdletBinding()] [OutputType([string])] param([string] $Title, [switch] $Compact) if (Get-Command Get-KritBanner -Module Krit.OmniFramework -ErrorAction SilentlyContinue) { return Get-KritBanner -Title $Title -Compact:$Compact } $path = Get-KritHardenBannerCanonicalPath if ($Compact -or -not $path -or -not (Test-Path -LiteralPath $path)) { $line = '[Kritical(TM)] Hardening | +61 1300 274 655 | sales at kritical dot net' if ($Title) { $line += " - $Title" } return $line } $logo = Get-Content -LiteralPath $path -Raw if ($Title) { return ($logo.TrimEnd() + "`n`n--- $Title ---`n") } return $logo } function Write-KritHardenBanner { [CmdletBinding()] param([string] $Title, [switch] $Compact, [switch] $NoColor) if (Get-Command Write-KritBanner -Module Krit.OmniFramework -ErrorAction SilentlyContinue) { Write-KritBanner -Title $Title -Compact:$Compact -NoColor:$NoColor return } Write-Host (Get-KritHardenBanner -Title $Title -Compact:$Compact) -ForegroundColor DarkCyan } |