examples/06_pipeline_usage.ps1
|
<#
.SYNOPSIS Demonstrates pipeline support in PSConsoleUI .DESCRIPTION Shows how to use PSConsoleUI functions with PowerShell pipeline for seamless integration with Get-Process, Get-Service, and other cmdlets. #> # Import the module Import-Module "$PSScriptRoot\..\PSConsoleUI.psd1" -Force Write-ConsoleTitle -Title "PSConsoleUI - Pipeline Support Demo" # ===== PIPELINE WITH WRITE-CONSOLETABLE ===== Write-ConsoleHeader -Text "Pipeline with Write-ConsoleTable" # Example 1: Auto-detect columns from Get-Process Write-ConsoleSubtitle -Text "Processes (Auto Columns)" Get-Process | Select-Object -First 10 | Write-ConsoleTable -AutoColumns # Example 2: Custom columns with Get-Service Write-ConsoleSubtitle -Text "Services (Custom Columns with Color)" $cols = @( @{Header="Service Name"; Property="Name"; Width=30; Align="Left"} @{Header="Status"; Property="Status"; Width=15; Align="Left"} @{Header="Display Name"; Property="DisplayName"; Width=40; Align="Left"} ) Get-Service | Select-Object -First 15 | Write-ConsoleTable -Columns $cols ` -ColorMapProperty "Status" ` -ColorMap @{"Running"="Green"; "Stopped"="Red"} # Example 3: File system objects Write-ConsoleSubtitle -Text "Files in Current Directory" Get-ChildItem -File | Select-Object -First 10 | Write-ConsoleTable -AutoColumns # ===== PIPELINE WITH WRITE-CONSOLESTATUS ===== Write-ConsoleHeader -Text "Pipeline with Write-ConsoleStatus" # Example 1: Multiple success messages Write-ConsoleSubtitle -Text "Task Completion Messages" @("Database backup completed", "Log rotation completed", "Cache cleared") | Write-ConsoleStatus -Type Success # Example 2: Mixed status messages Write-ConsoleSubtitle -Text "System Check Results" $checks = @( @{Message="Disk space: OK"; Type="Success"} @{Message="Memory usage: High"; Type="Warning"} @{Message="Service stopped: Critical"; Type="Error"} @{Message="Network: Connected"; Type="Info"} ) foreach ($check in $checks) { Write-ConsoleStatus -Message $check.Message -Type $check.Type } # ===== PIPELINE WITH WRITE-CONSOLEINFO ===== Write-ConsoleHeader -Text "Pipeline with Write-ConsoleInfo" # Example: Log messages @("Starting process...", "Loading configuration...", "Connecting to database...") | Write-ConsoleInfo # ===== PIPELINE WITH WRITE-CONSOLEERROR ===== Write-ConsoleHeader -Text "Pipeline with Write-ConsoleError" # Example: Error messages @("Failed to connect to server", "Invalid credentials", "Timeout exceeded") | Write-ConsoleError # ===== REAL-WORLD EXAMPLE ===== Write-ConsoleHeader -Text "Real-World Example: System Health Check" Write-ConsoleSubtitle -Text "Running System Diagnostics..." # Check services $criticalServices = @("wuauserv", "BITS", "Winmgmt") $serviceStatus = Get-Service -Name $criticalServices -ErrorAction SilentlyContinue $serviceStatus | ForEach-Object { $type = if ($_.Status -eq "Running") { "Success" } else { "Error" } Write-ConsoleStatus -Message "$($_.DisplayName): $($_.Status)" -Type $type } Write-Host "" # Display in table Write-ConsoleSubtitle -Text "Service Details" $serviceStatus | Write-ConsoleTable -AutoColumns Write-ConsoleTitle -Title "Demo Complete!" Write-ConsoleStatus -Message "Pipeline support is working!" -Type "Success" Write-Host "" |