mods/ps-write.psm1

# ======================================================================================
# ~/Source/mods/ps-write.psm1
# ======================================================================================
function ps-write-hr($sChar, $color) {
    for ($i = 0; $i -lt 6; $i++) {
        $sChar += $sChar;
    }
    Write-Host $sChar -ForegroundColor $color;
}
# --------------------------------------------------------------------------------------
function ps-write-info([String] $value) {
    ps-write-hr -sChar "=" -color "DarkGreen";
    Write-Host $value -ForegroundColor "Green";
    ps-write-hr -sChar "=" -color "DarkGreen";
}
# --------------------------------------------------------------------------------------
function ps-write-cmd([ScriptBlock] $block) {
    ps-write-hr -sChar "-" -color "DarkGray";
    ps-write-hr -sChar "-" -color "DarkGray";
    [String] $value = "$block";
    Write-Host "ps-write-cmd " -ForegroundColor "Green" -NoNewLine;
    Write-Host "{" -ForegroundColor "Yellow" -NoNewLine;
    Write-Host $value -ForegroundColor "Blue" -NoNewLine;
    Write-Host "}" -ForegroundColor "Yellow";
    ps-write-hr -sChar "-" -color "DarkGray";
    & $block;
    ps-write-hr -sChar "-" -color "DarkGray";
}
# --------------------------------------------------------------------------------------
function ps-write-echo($value) {
    Write-Host $value -ForegroundColor "Magenta";
}
# --------------------------------------------------------------------------------------
function ps-write-warn([System.Management.Automation.ErrorRecord] $errorRecord) {
    [String] $errorMessage = "*** Unable to parse exception ***";
    if ($false -eq ($null -eq $errorRecord)) {
        if ($false -eq ($null -eq $errorRecord.Exception)) {
            $errorMessage = $errorRecord.Exception.ToString();
        }
    }
    ps-write-hr -sChar "-" -color "DarkRed";
    Write-Host "*** WARNING ***" -ForegroundColor "DarkYellow";
    ps-write-hr -sChar "-" -color "DarkRed";
    Write-Host $errorMessage -ForegroundColor "Red";
    ps-write-hr -sChar "-" -color "DarkRed";
}
# ======================================================================================
Export-ModuleMember -Function "ps-write-hr";
Export-ModuleMember -Function "ps-write-info";
Export-ModuleMember -Function "ps-write-cmd";
Export-ModuleMember -Function "ps-write-echo";
Export-ModuleMember -Function "ps-write-warn";
# ======================================================================================