From c6dfc8acaa61e669393e8b653b30f6c1e7395002 Mon Sep 17 00:00:00 2001 From: Vasiliy Tolstov Date: Sun, 13 Dec 2020 14:36:31 +0300 Subject: [PATCH] load config on service init Signed-off-by: Vasiliy Tolstov --- service.go | 32 ++++++++++++++++++++++++-------- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/service.go b/service.go index 8ab4567e..8846a5ce 100644 --- a/service.go +++ b/service.go @@ -40,6 +40,30 @@ func (s *service) Init(opts ...Option) error { o(&s.opts) } + for _, cfg := range s.opts.Configs { + + if err := cfg.Init(config.Context(s.opts.Context)); err != nil { + return err + } + + for _, fn := range cfg.Options().BeforeLoad { + if err := fn(s.opts.Context, cfg); err != nil { + return err + } + } + + if err := cfg.Load(s.opts.Context); err != nil { + return err + } + + for _, fn := range cfg.Options().AfterLoad { + if err := fn(s.opts.Context, cfg); err != nil { + return err + } + } + + } + if s.opts.Logger != nil { if err := s.opts.Logger.Init( logger.WithContext(s.opts.Context), @@ -48,14 +72,6 @@ func (s *service) Init(opts ...Option) error { } } - if s.opts.Configs != nil { - for _, c := range s.opts.Configs { - if err := c.Init(config.Context(s.opts.Context)); err != nil { - return err - } - } - } - if s.opts.Registry != nil { if err := s.opts.Registry.Init( registry.Context(s.opts.Context),