package mutator import ( "context" "github.com/databricks/cli/bundle" "github.com/databricks/cli/libs/diag" "github.com/databricks/cli/libs/dyn" ) type syncDefaultPath struct{} // SyncDefaultPath configures the default sync path to be equal to the bundle root. func SyncDefaultPath() bundle.Mutator { return &syncDefaultPath{} } func (m *syncDefaultPath) Name() string { return "SyncDefaultPath" } func (m *syncDefaultPath) Apply(ctx context.Context, b *bundle.Bundle) diag.Diagnostics { isset := false err := b.Config.Mutate(func(v dyn.Value) (dyn.Value, error) { pv, _ := dyn.Get(v, "sync.paths") // If the sync paths field is already set, do nothing. // We know it is set if its value is either a nil or a sequence (empty or not). switch pv.Kind() { case dyn.KindNil, dyn.KindSequence: isset = true } return v, nil }) if err != nil { return diag.FromErr(err) } // If the sync paths field is already set, do nothing. if isset { return nil } // Set the sync paths to the default value. b.Config.Sync.Paths = []string{"."} return nil }