summaryrefslogtreecommitdiff
path: root/internal/server
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2024-08-19 10:43:20 +0300
committerPaul Buetow <paul@buetow.org>2024-08-19 10:43:20 +0300
commitb9aac1245c586ed3a78713e7b47f1e00c71a9aa2 (patch)
treec0dbac9ea6f39e5182bd68c7575fcd9d55c4b0fc /internal/server
parent4d60317a4697cc3a6669c2ffb613e8e90a7dedd5 (diff)
report error when repo cant be loaded
Diffstat (limited to 'internal/server')
-rw-r--r--internal/server/repository/repository.go18
1 files changed, 12 insertions, 6 deletions
diff --git a/internal/server/repository/repository.go b/internal/server/repository/repository.go
index d673f24..b99a310 100644
--- a/internal/server/repository/repository.go
+++ b/internal/server/repository/repository.go
@@ -44,9 +44,6 @@ type Repository struct {
func Instance(conf server.ServerConfig) Repository {
once.Do(func() {
instance = newRepository(conf, vfs.RealFS{})
- if err := instance.load(); err != nil {
- panic(err)
- }
})
return instance
}
@@ -145,7 +142,10 @@ func (r Repository) Get(id string) (types.Entry, error) {
if !r.getIdRe.MatchString(id) {
return types.Entry{}, fmt.Errorf("invalid id %s", id)
}
- _ = r.load()
+ if err := r.load(); err != nil {
+ return types.Entry{}, err
+ }
+
r.mu.Lock()
defer r.mu.Unlock()
@@ -171,7 +171,6 @@ func (r Repository) GetJSON(id string) (string, error) {
}
func (r Repository) hasSameEntry(pair entryPair) bool {
- _ = r.load()
r.mu.Lock()
defer r.mu.Unlock()
@@ -192,7 +191,10 @@ func (r Repository) Update(ent types.Entry) error {
}
func (r Repository) Merge(otherEnt types.Entry) error {
- _ = r.load()
+ if err := r.load(); err != nil {
+ return err
+ }
+
r.mu.Lock()
defer r.mu.Unlock()
@@ -260,6 +262,10 @@ func (r Repository) mergeRemotelyFromPartner(ctx context.Context, partner string
func (r Repository) mergeFromPartner(ctx context.Context, partner string,
getPair getPairDataFunc, getEntry getEntryDataFunc) error {
+ if err := r.load(); err != nil {
+ return err
+ }
+
var (
errs []error
pairs []entryPair