From 9e7245efd034ce0bc2b20cfb1e7bf905e7411833 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ren=C3=A9=20Jochum?= Date: Sun, 25 Sep 2022 02:05:51 +0200 Subject: [PATCH] Smaller improvements --- components.go | 19 ++++++++++++++++--- interface.go | 4 ++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/components.go b/components.go index 5504dc9..5792110 100644 --- a/components.go +++ b/components.go @@ -28,7 +28,8 @@ type ComponentsKey struct{} type Components struct { components map[string]Component - service micro.Service + service micro.Service + flagPrefix string } func Context(ctx context.Context) (*Components, error) { @@ -61,14 +62,26 @@ func New(components ...Component) *Components { return com } -func (c *Components) SetService(service micro.Service) { +func (c *Components) SetService(service micro.Service) *Components { c.service = service + + return c } func (c *Components) Service() micro.Service { return c.service } +func (c *Components) SetFlagPrefix(flagPrefix string) *Components { + c.flagPrefix = flagPrefix + + return c +} + +func (c *Components) FlagPrefix() string { + return c.flagPrefix +} + func (c *Components) Add(components ...Component) { for _, component := range components { if component == nil { @@ -102,7 +115,7 @@ func (c *Components) Must(name string) Component { func (c *Components) MergeFlags(flags []cli.Flag) []cli.Flag { for _, component := range c.components { - flags = component.MergeFlags(flags) + flags = component.MergeFlags(c, flags) } return flags diff --git a/interface.go b/interface.go index 8da120a..83f4ba4 100644 --- a/interface.go +++ b/interface.go @@ -11,9 +11,9 @@ type Component interface { Name() string Priority() int Initialized() bool - Init(components *Components, context *cli.Context) error + Init(components *Components, cli *cli.Context) error Stop() error - MergeFlags(cli []cli.Flag) []cli.Flag + MergeFlags(components *Components, flags []cli.Flag) []cli.Flag Health(context context.Context) (string, bool) WrapperFunc(ctx context.Context, req server.Request, rsp interface{}) error