mirror of https://github.com/databricks/cli.git
Fix template initialization from current working directory (#976)
## Changes If args[0] == "." was provided to bundle init command, it would try to resolve it as a built in template and error out. ## Tests Manually before: ``` shreyas.goenka@THW32HFW6T mlops-stack % cli bundle init . Error: open /var/folders/lg/njll3hjx7pjcgxs6n7b290bw0000gp/T/templates3934264356/templates/databricks_template_schema.json: no such file or directory ``` after: ``` shreyas.goenka@THW32HFW6T mlops-stack % cli bundle init . Welcome to MLOps Stacks. For detailed information on project generation, see the README at https://github.com/databricks/mlops-stacks/blob/main/README.md. Project Name [my-mlops-project]: ^C ```
This commit is contained in:
parent
0f58f6c875
commit
b397501880
|
@ -104,6 +104,12 @@ func Materialize(ctx context.Context, configFilePath, templateRoot, outputDir st
|
|||
|
||||
// If the given templateRoot matches
|
||||
func prepareBuiltinTemplates(templateRoot string, tempDir string) (string, error) {
|
||||
// Check that `templateRoot` is a clean basename, i.e. `some_path` and not `./some_path` or "."
|
||||
// Return early if that's not the case.
|
||||
if templateRoot == "." || path.Base(templateRoot) != templateRoot {
|
||||
return templateRoot, nil
|
||||
}
|
||||
|
||||
_, err := fs.Stat(builtinTemplates, path.Join("templates", templateRoot))
|
||||
if err != nil {
|
||||
// The given path doesn't appear to be using out built-in templates
|
||||
|
|
|
@ -86,6 +86,18 @@ func assertBuiltinTemplateValid(t *testing.T, settings map[string]any, target st
|
|||
}
|
||||
}
|
||||
|
||||
func TestPrepareBuiltInTemplatesWithRelativePaths(t *testing.T) {
|
||||
// CWD should not be resolved as a built in template
|
||||
dir, err := prepareBuiltinTemplates(".", t.TempDir())
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, ".", dir)
|
||||
|
||||
// relative path should not be resolved as a built in template
|
||||
dir, err = prepareBuiltinTemplates("./default-python", t.TempDir())
|
||||
assert.NoError(t, err)
|
||||
assert.Equal(t, "./default-python", dir)
|
||||
}
|
||||
|
||||
func TestBuiltinTemplateValid(t *testing.T) {
|
||||
// Test option combinations
|
||||
options := []string{"yes", "no"}
|
||||
|
|
Loading…
Reference in New Issue