package mutator import ( "fmt" "github.com/databricks/cli/bundle" "github.com/databricks/databricks-sdk-go/service/pipelines" ) func transformLibraryNotebook(resource any, dir string) *transformer { library, ok := resource.(*pipelines.PipelineLibrary) if !ok || library.Notebook == nil { return nil } return &transformer{ dir, &library.Notebook.Path, "libraries.notebook.path", translateNotebookPath, } } func transformLibraryFile(resource any, dir string) *transformer { library, ok := resource.(*pipelines.PipelineLibrary) if !ok || library.File == nil { return nil } return &transformer{ dir, &library.File.Path, "libraries.file.path", translateFilePath, } } func applyPipelineTransformers(m *translatePaths, b *bundle.Bundle) error { pipelineTransformers := []transformFunc{ transformLibraryNotebook, transformLibraryFile, } for key, pipeline := range b.Config.Resources.Pipelines { dir, err := pipeline.ConfigFileDirectory() if err != nil { return fmt.Errorf("unable to determine directory for pipeline %s: %w", key, err) } for i := 0; i < len(pipeline.Libraries); i++ { library := &pipeline.Libraries[i] err := m.applyTransformers(pipelineTransformers, b, library, dir) if err != nil { return err } } } return nil }