diff --git a/cli/merge.go b/cli/merge.go index 751fce9f..00a191f9 100644 --- a/cli/merge.go +++ b/cli/merge.go @@ -60,9 +60,7 @@ func mergeConfig(c *cli.Context) error { func createDefaultMerger() (*configmerge.Merger, error) { opts := log.GetGlobalLoggerOpts() logger := log.NewLogger(opts) - - repoCache := configmerge.NewRepoCache() - configReader, err := configmerge.NewConfigReader(repoCache, logger) + configReader, err := configmerge.NewConfigReader(logger) if err != nil { return nil, fmt.Errorf("failed to create config module reader: %w", err) } diff --git a/configmerge/config_reader.go b/configmerge/config_reader.go index 9d324955..b13c9ef6 100644 --- a/configmerge/config_reader.go +++ b/configmerge/config_reader.go @@ -10,26 +10,21 @@ import ( "github.com/go-git/go-git/v5/plumbing" ) -type RepoCache interface { - GetRepo(ref ConfigReference) string - SetRepo(dir string, ref ConfigReference) -} - type fileReader struct { - repoCache RepoCache tmpDir string + repoCache map[string]string logger Logger } -func NewConfigReader(repoCache RepoCache, logger Logger) (ConfigReader, error) { +func NewConfigReader(logger Logger) (ConfigReader, error) { tmpDir, err := pathutilV2.NewPathProvider().CreateTempDir("config-merge") if err != nil { return nil, err } return fileReader{ - repoCache: repoCache, tmpDir: tmpDir, + repoCache: map[string]string{}, logger: logger, }, nil } @@ -39,7 +34,7 @@ func (f fileReader) Read(ref ConfigReference) ([]byte, error) { return f.readFileFromFileSystem(ref.Path) } - cachedRepoDir := f.repoCache.GetRepo(ref) + cachedRepoDir := f.getRepo(ref) if cachedRepoDir != "" { pth := filepath.Join(cachedRepoDir, ref.Path) return f.readFileFromFileSystem(pth) @@ -50,7 +45,7 @@ func (f fileReader) Read(ref ConfigReference) ([]byte, error) { return nil, err } - f.repoCache.SetRepo(repoDir, ref) + f.setRepo(repoDir, ref) pth := filepath.Join(repoDir, ref.Path) return f.readFileFromFileSystem(pth) } @@ -135,3 +130,11 @@ func (f fileReader) cloneGitRepository(ref ConfigReference) (string, error) { return repoDir, nil } + +func (f fileReader) getRepo(ref ConfigReference) string { + return f.repoCache[ref.RepoKey()] +} + +func (f fileReader) setRepo(dir string, ref ConfigReference) { + f.repoCache[ref.RepoKey()] = dir +} diff --git a/configmerge/repo_cache.go b/configmerge/repo_cache.go deleted file mode 100644 index d0dd3191..00000000 --- a/configmerge/repo_cache.go +++ /dev/null @@ -1,19 +0,0 @@ -package configmerge - -type repoCache struct { - cache map[string]string -} - -func NewRepoCache() RepoCache { - return repoCache{ - cache: map[string]string{}, - } -} - -func (c repoCache) GetRepo(ref ConfigReference) string { - return c.cache[ref.RepoKey()] -} - -func (c repoCache) SetRepo(dir string, ref ConfigReference) { - c.cache[ref.RepoKey()] = dir -}