From b8584fec70bd6810fa2392deadc69595b3e94cfa Mon Sep 17 00:00:00 2001 From: Max Resnick Date: Sat, 4 May 2024 10:24:48 -0700 Subject: feat: refactor of repo management --- internal/admin/service.go | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'internal/admin/service.go') diff --git a/internal/admin/service.go b/internal/admin/service.go index bcf42f9..c1082d5 100644 --- a/internal/admin/service.go +++ b/internal/admin/service.go @@ -26,8 +26,17 @@ func (s *Servicer) Reload() { slog.Error("refusing to reload config") return } + oldConfig := s.Conf s.Conf = tmpConfig - _ = s.InitServer() + if err := s.InitServer(); err != nil { + slog.Error("couldn't init server with new config, falling back", err) + s.Conf = oldConfig + if err := s.InitServer(); err != nil { + slog.Error("couldn't init server with old config, falling back", err) + panic("new and old config couldn't init server, no available config to run") + } + slog.Error("server has fallen back to old config but it lives in memory only, in fragile state") + } } // InitServer initialize a git server and configure -- cgit v1.2.3