From 9043cf25c5d0519e57973160c2872fc942b278fb Mon Sep 17 00:00:00 2001 From: yusing Date: Sat, 3 May 2025 17:41:50 +0800 Subject: [PATCH] feat: push notification for config errors --- internal/config/config.go | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/internal/config/config.go b/internal/config/config.go index 7aacdf18..99605e41 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -9,6 +9,7 @@ import ( "sync" "time" + "github.com/rs/zerolog" "github.com/yusing/go-proxy/internal/api" autocert "github.com/yusing/go-proxy/internal/autocert" "github.com/yusing/go-proxy/internal/common" @@ -23,6 +24,7 @@ import ( "github.com/yusing/go-proxy/internal/task" "github.com/yusing/go-proxy/internal/utils" F "github.com/yusing/go-proxy/internal/utils/functional" + "github.com/yusing/go-proxy/internal/utils/strutils/ansi" "github.com/yusing/go-proxy/internal/watcher" "github.com/yusing/go-proxy/internal/watcher/events" ) @@ -115,7 +117,7 @@ func Reload() gperr.Error { err := newCfg.load() if err != nil { newCfg.task.Finish(err) - return gperr.New("using last config").With(err) + return gperr.New(ansi.Warning("using last config")).With(err) } // cancel all current subtasks -> wait @@ -249,7 +251,15 @@ func (cfg *Config) load() gperr.Error { } } - return errs.Error() + if errs.HasError() { + notif.Notify(¬if.LogMessage{ + Level: zerolog.ErrorLevel, + Title: "Config Reload Error", + Body: notif.ErrorBody{Error: errs.Error()}, + }) + return errs.Error() + } + return nil } func (cfg *Config) initNotification(notifCfg []notif.NotificationConfig) {