TaskFunctions/Invoke-PlumberHelp.ps1
|
function Invoke-PlumberHelp { <# .SYNOPSIS Runs the Help task body. #> [CmdletBinding()] param () $publicRoot = Join-Path $BuildRoot 'Public' $pathComparison = Get-PlumberPathStringComparison $functionRoots = [System.Collections.Generic.List[hashtable]]::new() $functionRoots.Add(@{ Path = $publicRoot RequireFullHelp = $true }) foreach ($moduleFolder in $script:moduleFolders) { if ($moduleFolder.Equals($publicRoot, $pathComparison)) { continue } $functionRoots.Add(@{ Path = $moduleFolder RequireFullHelp = -not $script:PlumberConfig.Tasks.Help.PrivateSynopsisOnly }) } $failures = [System.Collections.Generic.List[string]]::new() foreach ($functionRoot in $functionRoots) { if (-not (Test-Path $functionRoot.Path)) { continue } foreach ($file in Get-ChildItem $functionRoot.Path -File -Filter '*.ps1') { $help = Get-PlumberFunctionHelp -Path $file.FullName $helpFailures = Test-PlumberFunctionHelp -Help $help -RequireFullHelp:$functionRoot.RequireFullHelp foreach ($helpFailure in $helpFailures) { $failures.Add($helpFailure) } } } if ($failures) { Write-Error ($failures -join (', ' + [Environment]::NewLine)) } } |