@@ -33,7 +33,7 @@ const defaultCatwalkURL = "https://catwalk.charm.sh"
33func Load(workingDir, dataDir string, debug bool) (*ConfigStore, error) {
33func Load(workingDir, dataDir string, debug bool) (*ConfigStore, error) {
34 configPaths := lookupConfigs(workingDir)
34 configPaths := lookupConfigs(workingDir)
36− cfg, err := loadFromConfigPaths(configPaths)
36+ cfg, loadedPaths, err := loadFromConfigPaths(configPaths)
37 if err != nil {
37 if err != nil {
38 return nil, fmt.Errorf("failed to load config from paths %v: %w", configPaths, err)
38 return nil, fmt.Errorf("failed to load config from paths %v: %w", configPaths, err)
@@ -45,6 +45,7 @@ func Load(workingDir, dataDir string, debug bool) (*ConfigStore, error) {
45 workingDir: workingDir,
45 workingDir: workingDir,
46 globalDataPath: GlobalConfigData(),
46 globalDataPath: GlobalConfigData(),
47 workspacePath: filepath.Join(cfg.Options.DataDirectory, fmt.Sprintf("%s.json", appName)),
47 workspacePath: filepath.Join(cfg.Options.DataDirectory, fmt.Sprintf("%s.json", appName)),
48+ loadedPaths: loadedPaths,
50 if debug {
51 if debug {
@@ -60,6 +61,7 @@ func Load(workingDir, dataDir string, debug bool) (*ConfigStore, error) {
60 *cfg = *merged
61 *cfg = *merged
61 cfg.setDefaults(workingDir, dataDir)
62 cfg.setDefaults(workingDir, dataDir)
62 store.config = cfg
63 store.config = cfg
64+ store.loadedPaths = append(store.loadedPaths, store.workspacePath)
@@ -669,8 +671,9 @@ func lookupConfigs(cwd string) []string {
669 return append(configPaths, foundConfigs...)
671 return append(configPaths, foundConfigs...)
672−func loadFromConfigPaths(configPaths []string) (*Config, error) {
674+func loadFromConfigPaths(configPaths []string) (*Config, []string, error) {
673 var configs [][]byte
675 var configs [][]byte
675 for _, path := range configPaths {
678 for _, path := range configPaths {
676 data, err := os.ReadFile(path)
679 data, err := os.ReadFile(path)
@@ -678,15 +681,20 @@ func loadFromConfigPaths(configPaths []string) (*Config, error) {
678 if os.IsNotExist(err) {
681 if os.IsNotExist(err) {
681− return nil, fmt.Errorf("failed to open config file %s: %w", path, err)
684+ return nil, nil, fmt.Errorf("failed to open config file %s: %w", path, err)
683 if len(data) == 0 {
686 if len(data) == 0 {
686 configs = append(configs, data)
689 configs = append(configs, data)
690+ loaded = append(loaded, path)
689− return loadFromBytes(configs)
693+ cfg, err := loadFromBytes(configs)
695+ return nil, nil, err
697+ return cfg, loaded, nil
692func loadFromBytes(configs [][]byte) (*Config, error) {
700func loadFromBytes(configs [][]byte) (*Config, error) {