load config on service init

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
Василий Толстов 2020-12-13 14:36:31 +03:00
parent 762f20d179
commit c6dfc8acaa
1 changed files with 24 additions and 8 deletions

View File

@ -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),