Private/Sort-PSDependency.ps1
|
function Sort-PSDependency { [cmdletbinding()] param( [object[]]$Dependencies ) $Order = @{} Foreach ($Dependency in $Dependencies) { if ($Dependency.DependsOn) { if (-not $Order.ContainsKey($Dependency.DependencyName)) { $Order.add($Dependency.DependencyName, $Dependency.DependsOn) } } } if ($Order.Keys.Count -gt 0) { $DependencyOrder = Get-TopologicalSort $Order Sort-ObjectWithCustomList -InputObject $Dependencies -Property DependencyName -CustomList $DependencyOrder } else { $Dependencies } } |