@@ -2,11 +2,14 @@ package template
22
33import (
44 "context"
5+ "path/filepath"
56 "sort"
67 "strconv"
8+ "strings"
79
810 "github.com/databricks/cli/libs/cmdctx"
911 "github.com/databricks/cli/libs/cmdio"
12+ "github.com/databricks/cli/libs/dbr"
1013 "github.com/databricks/cli/libs/filer"
1114 "github.com/databricks/cli/libs/jsonschema"
1215 "github.com/databricks/cli/libs/telemetry"
@@ -46,7 +49,20 @@ type defaultWriter struct {
4649func (tmpl * defaultWriter ) Configure (ctx context.Context , configPath , outputDir string ) error {
4750 tmpl .configPath = configPath
4851
49- outputFiler , err := filer .NewOutputFiler (ctx , cmdctx .WorkspaceClient (ctx ), outputDir )
52+ // Workspace client is only needed when running on DBR and writing to /Workspace/.
53+ // We avoid calling cmdctx.WorkspaceClient unconditionally because it panics
54+ // if the workspace client is not set in the context.
55+ var outputFiler filer.Filer
56+ var err error
57+ absOutputDir , err := filepath .Abs (outputDir )
58+ if err != nil {
59+ return err
60+ }
61+ if strings .HasPrefix (absOutputDir , "/Workspace/" ) && dbr .RunsOnRuntime (ctx ) {
62+ outputFiler , err = filer .NewOutputFiler (ctx , cmdctx .WorkspaceClient (ctx ), outputDir )
63+ } else {
64+ outputFiler , err = filer .NewLocalClient (absOutputDir )
65+ }
5066 if err != nil {
5167 return err
5268 }
0 commit comments