Public/Edit-Pipeline.ps1
function Edit-Pipeline { [CmdletBinding()] param ( [Parameter( Mandatory, ValueFromPipeline )] $Pipeline, [Parameter( Mandatory )] [ValidateSet( 'InvertDependencies' )] [string] $Operation ) process { switch ($Operation) { InvertDependencies { # select all dependencies $dependencies = $Pipeline | Get-Activity | ForEach-Object { $Activity = $_ $Activity | Get-Dependency | ForEach-Object { @{ Activity = $Activity PredecessorActivity = ( $Pipeline | Get-Activity -Name $_.Activity ) DependencyConditions = $_.dependencyConditions } } } # replace dependencies $dependencies | ForEach-Object { $_.Activity | Remove-Dependency -OnActivity $_.PredecessorActivity $_.PredecessorActivity | Add-Dependency -OnActivity $_.Activity -Condition $_.DependencyConditions } } Default { Write-Error "Invalid Operation $Operation" } } } } |