databricks-cli/libs/template/materialize.go

32 lines
775 B
Go

package template
import (
"path/filepath"
)
const schemaFileName = "databricks_template_schema.json"
const templateDirName = "template"
const libraryDirName = "library"
func Materialize(templateRoot, instanceRoot, configPath string) error {
// read the file containing schema for template input parameters
schema, err := ReadSchema(filepath.Join(templateRoot, schemaFileName))
if err != nil {
return err
}
// read user config to initialize the template with
config, err := schema.ReadConfig(configPath)
if err != nil {
return err
}
r, err := newRenderer(config, filepath.Join(templateRoot, libraryDirName))
if err != nil {
return err
}
// materialize the template
return walkFileTree(r, filepath.Join(templateRoot, templateDirName), instanceRoot)
}