Private/Sort-PSDependency.ps1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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 } } |