aboutsummaryrefslogtreecommitdiffstats
path: root/cache
diff options
context:
space:
mode:
authorMichael Muré <batolettre@gmail.com>2020-06-27 23:09:22 +0200
committerGitHub <noreply@github.com>2020-06-27 23:09:22 +0200
commitc0dbc149d5c0c3610476ba14a800c9ba803a2c2c (patch)
treec07587da30eae7a37c2597d110ef1e66be3b4b8f /cache
parent23228101a2a38a139f6fc2cafc18e9f08d911089 (diff)
parent3aaf775857d186ad416133935e73ed1b063938c6 (diff)
downloadgit-bug-c0dbc149d5c0c3610476ba14a800c9ba803a2c2c.tar.gz
Merge pull request #407 from lukegb/fix-402
Add support for read-only mode for web UI.
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)