databricks-cli/bundle/bundle.go

54 lines
956 B
Go

package bundle
import (
"context"
"path/filepath"
"github.com/databricks/bricks/bundle/config"
"github.com/databricks/bricks/bundle/config/mutator"
)
type Bundle struct {
Config config.Root
}
func (b *Bundle) MutateForEnvironment(env string) error {
return mutator.Apply(&b.Config, mutator.DefaultMutatorsForEnvironment(env))
}
func Load(path string) (*Bundle, error) {
bundle := &Bundle{
Config: config.Root{
Path: path,
},
}
err := bundle.Config.Load(filepath.Join(path, config.FileName))
if err != nil {
return nil, err
}
return bundle, nil
}
func LoadFromRoot() (*Bundle, error) {
root, err := getRoot()
if err != nil {
return nil, err
}
return Load(root)
}
func ConfigureForEnvironment(ctx context.Context, env string) (context.Context, error) {
b, err := LoadFromRoot()
if err != nil {
return nil, err
}
err = b.MutateForEnvironment(env)
if err != nil {
return nil, err
}
return Context(ctx, b), nil
}