Skip to content

Commit

Permalink
Merge repo cache into fileReader
Browse files Browse the repository at this point in the history
  • Loading branch information
godrei committed Jul 26, 2024
1 parent 9f58090 commit 8490578
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 32 deletions.
4 changes: 1 addition & 3 deletions cli/merge.go
Original file line number Diff line number Diff line change
Expand Up @@ -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)
}
Expand Down
23 changes: 13 additions & 10 deletions configmerge/config_reader.go
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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)
Expand All @@ -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)
}
Expand Down Expand Up @@ -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
}
19 changes: 0 additions & 19 deletions configmerge/repo_cache.go

This file was deleted.

0 comments on commit 8490578

Please sign in to comment.