aboutsummaryrefslogtreecommitdiffstats
path: root/cache
diff options
context:
space:
mode:
Diffstat (limited to 'cache')
-rw-r--r--cache/multi_repo_cache.go16
-rw-r--r--cache/repo_cache.go10
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)