diff --git a/internal/config/load.go b/internal/config/load.go index 05128e64e00d2957c99b194124556d0ecb747fff..9810f64cdc4a8672aca95ac4aa6fbffc0881e72c 100644 --- a/internal/config/load.go +++ b/internal/config/load.go @@ -15,6 +15,7 @@ import ( "github.com/charmbracelet/catwalk/pkg/catwalk" "github.com/charmbracelet/crush/internal/csync" "github.com/charmbracelet/crush/internal/env" + "github.com/charmbracelet/crush/internal/fsext" "github.com/charmbracelet/crush/internal/log" ) @@ -310,7 +311,11 @@ func (c *Config) setDefaults(workingDir string) { c.Options.ContextPaths = []string{} } if c.Options.DataDirectory == "" { - c.Options.DataDirectory = filepath.Join(workingDir, defaultDataDirectory) + if path, ok := fsext.SearchParent(workingDir, defaultDataDirectory); ok { + c.Options.DataDirectory = path + } else { + c.Options.DataDirectory = filepath.Join(workingDir, defaultDataDirectory) + } } if c.Providers == nil { c.Providers = csync.NewMap[string, ProviderConfig]()