diff --git a/Chronometer/Public/Format-Chronometer.ps1 b/Chronometer/Public/Format-Chronometer.ps1 index f12be7e..ccb3211 100644 --- a/Chronometer/Public/Format-Chronometer.ps1 +++ b/Chronometer/Public/Format-Chronometer.ps1 @@ -9,42 +9,54 @@ function Format-Chronometer $resultes = Get-Chronometer -Path $script.fullname -ScriptBlock {Invoke-Pester C:\workspace\PSGraph} $results | Format-Chronometer -WarnAt 20 -ErrorAt 200 #> - [cmdletbinding()] + [cmdletbinding(DefaultParameterSetName='Script')] param( # This is a MonitoredScript object from Get-Chronometer [Parameter( - ValueFromPipeline=$true + ValueFromPipeline=$true, + ParameterSetName='Script' )] [MonitoredScript[]] $InputObject, + # This is a ScriptLine object from a MonitoredScript object + [Parameter( + ValueFromPipeline=$true, + ParameterSetName='Line' + )] + [ScriptLine[]] + $Line, + # If the average time of a command is more than this, the output is yellow [int] $WarningAt = 20, #If the average time of a comamand is more than this, the output is red [int] - $ErrorAt = 200 + $ErrorAt = 200, + + # Forces the report to show scripts with no execution time + [switch] + $ShowAll ) - begin { - $green = @{ForgroundColor='green'} - $grey = @{ForgroundColor='grey'} - $yellow = @{ForgroundColor='grey'} - $yellow = @{ForgroundColor='grey'} - $yellow = @{ForgroundColor='grey'} - } process { foreach($script in $InputObject) { - Write-Host '' - Write-Host "Script: $($script.Path)" -ForegroundColor Green - Write-Host "Execution Time: $($script.ExecutionTime)" -ForegroundColor Green - foreach($line in $script.line) - { - Write-ScriptLine $line -WarningAt $WarningAt -ErrorAt $ErrorAt + if($script.ExecutionTime -ne [TimeSpan]::Zero -or $ShowAll) + { + Write-Host '' + Write-Host "Script: $($script.Path)" -ForegroundColor Green + Write-Host "Execution Time: $($script.ExecutionTime)" -ForegroundColor Green + + $script.line | Format-Chronometer -WarningAt $WarningAt -ErrorAt $ErrorAt } } + + foreach($command in $Line) + { + Write-ScriptLine $command -WarningAt $WarningAt -ErrorAt $ErrorAt + } } }