diff options
| author | Paul Buetow <paul@buetow.org> | 2024-08-19 10:43:20 +0300 |
|---|---|---|
| committer | Paul Buetow <paul@buetow.org> | 2024-08-19 10:43:20 +0300 |
| commit | b9aac1245c586ed3a78713e7b47f1e00c71a9aa2 (patch) | |
| tree | c0dbac9ea6f39e5182bd68c7575fcd9d55c4b0fc /internal/server | |
| parent | 4d60317a4697cc3a6669c2ffb613e8e90a7dedd5 (diff) | |
report error when repo cant be loaded
Diffstat (limited to 'internal/server')
| -rw-r--r-- | internal/server/repository/repository.go | 18 |
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 |
