scripts/Normalize-Config.ps1
function Normalize-Config { [CmdletBinding()] param ( [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline= $true)] [hashtable]$config ) process { $templates = Coalesce $config.templates, $config.actions, @{} ${pwshake-context}.templates = Merge-Hashtables ${pwshake-context}.templates $templates return @{ includes = @() + (Coalesce $config.includes, @()); attributes = Coalesce $config.attributes, @{}; attributes_overrides = @() + (Coalesce $config.attributes_overrides, @()); scripts_directories = @() + (Coalesce $config.scripts_directories, @()); tasks = Coalesce $config.tasks, $config.run_lists, $config.roles, @{}; templates = $templates; invoke_tasks = @() + (Coalesce $config.invoke_tasks, $config.invoke_run_lists, $config.apply_roles, @()); resources = @() + (Coalesce $config.resources, $config.repositories, @()); } } } |