diff options
Diffstat (limited to 'cache')
-rw-r--r-- | cache/multi_repo_cache.go | 16 | ||||
-rw-r--r-- | cache/repo_cache.go | 10 |
2 files changed, 18 insertions, 8 deletions
diff --git a/cache/multi_repo_cache.go b/cache/multi_repo_cache.go index a55bbcce..726558d9 100644 --- a/cache/multi_repo_cache.go +++ b/cache/multi_repo_cache.go @@ -13,32 +13,32 @@ type MultiRepoCache struct { repos map[string]*RepoCache } -func NewMultiRepoCache() MultiRepoCache { - return MultiRepoCache{ +func NewMultiRepoCache() *MultiRepoCache { + return &MultiRepoCache{ repos: make(map[string]*RepoCache), } } // RegisterRepository register a named repository. Use this for multi-repo setup -func (c *MultiRepoCache) RegisterRepository(ref string, repo repository.ClockedRepo) error { +func (c *MultiRepoCache) RegisterRepository(ref string, repo repository.ClockedRepo) (*RepoCache, error) { r, err := NewRepoCache(repo) if err != nil { - return err + return nil, err } c.repos[ref] = r - return nil + return r, nil } // RegisterDefaultRepository register a unnamed repository. Use this for mono-repo setup -func (c *MultiRepoCache) RegisterDefaultRepository(repo repository.ClockedRepo) error { +func (c *MultiRepoCache) RegisterDefaultRepository(repo repository.ClockedRepo) (*RepoCache, error) { r, err := NewRepoCache(repo) if err != nil { - return err + return nil, err } c.repos[""] = r - return nil + return r, nil } // DefaultRepo retrieve the default repository diff --git a/cache/repo_cache.go b/cache/repo_cache.go index 4a6b007f..92760bbb 100644 --- a/cache/repo_cache.go +++ b/cache/repo_cache.go @@ -142,6 +142,16 @@ func (c *RepoCache) GetUserEmail() (string, error) { return c.repo.GetUserEmail() } +// ReadData will attempt to read arbitrary data from the given hash +func (c *RepoCache) ReadData(hash git.Hash) ([]byte, error) { + return c.repo.ReadData(hash) +} + +// StoreData will store arbitrary data and return the corresponding hash +func (c *RepoCache) StoreData(data []byte) (git.Hash, error) { + return c.repo.StoreData(data) +} + func (c *RepoCache) lock() error { lockPath := repoLockFilePath(c.repo) |