mirror of https://github.com/databricks/cli.git
36 lines
653 B
Go
36 lines
653 B
Go
package bundle
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/databricks/cli/libs/errs"
|
|
)
|
|
|
|
type DeferredMutator struct {
|
|
mutators []Mutator
|
|
finally []Mutator
|
|
}
|
|
|
|
func (d *DeferredMutator) Name() string {
|
|
return "deferred"
|
|
}
|
|
|
|
func Defer(mutators []Mutator, finally []Mutator) []Mutator {
|
|
return []Mutator{
|
|
&DeferredMutator{
|
|
mutators: mutators,
|
|
finally: finally,
|
|
},
|
|
}
|
|
}
|
|
|
|
func (d *DeferredMutator) Apply(ctx context.Context, b *Bundle) ([]Mutator, error) {
|
|
mainErr := Apply(ctx, b, d.mutators)
|
|
errOnFinish := Apply(ctx, b, d.finally)
|
|
if mainErr != nil || errOnFinish != nil {
|
|
return nil, errs.FromMany(mainErr, errOnFinish)
|
|
}
|
|
|
|
return nil, nil
|
|
}
|