scripts/Build-Step.ps1
function Build-Step { [CmdletBinding()] [OutputType([hashtable])] param ( [Parameter(Position = 0, Mandatory = $false, ValueFromPipeline = $true)] [object]$step ) process { "Build-Step:In:`$_`n$(ConvertTo-Yaml $_)" | f-log-dbg if ($null -eq $step) { return $null } else { $step = $step | Build-Item | Build-Template } "Build-Step:Build-Template:$(@{'$step'=$step} | ConvertTo-Yaml)" | f-log-dbg $step = Merge-Hashtables @{ name = $step.name; when = Build-When $step; work_dir = Coalesce $step.work_dir, $step.in; on_error = Coalesce $step.on_error, 'throw'; powershell = Coalesce $step.powershell, $step.pwsh; } $step "Build-Step:Out:$(@{'$step'=$step} | ConvertTo-Yaml)" | f-log-dbg return $step } } |