From b9aac1245c586ed3a78713e7b47f1e00c71a9aa2 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 19 Aug 2024 10:43:20 +0300 Subject: report error when repo cant be loaded --- internal/server/repository/repository.go | 18 ++++++++++++------ 1 file 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 -- cgit v1.2.3