diff --git a/components.go b/components.go index 2b0ce1b..5ef8004 100644 --- a/components.go +++ b/components.go @@ -101,9 +101,9 @@ func (c *Components) Must(name string) Component { return component } -func (c *Components) MergeFlags(flags []cli.Flag) []cli.Flag { +func (c *Components) AppendFlags(flags []cli.Flag) []cli.Flag { for _, component := range c.components { - flags = component.MergeFlags(c, flags) + flags = append(flags, component.Flags(c, flags)...) } return flags diff --git a/components/logrus/logrus.go b/components/logrus/logrus.go index a582099..2670ac5 100644 --- a/components/logrus/logrus.go +++ b/components/logrus/logrus.go @@ -90,13 +90,15 @@ func (c *LogrusComponet) Stop() error { return nil } -func (c *LogrusComponet) MergeFlags(r *components.Components, flags []cli.Flag) []cli.Flag { - return components.MergeFlag(flags, &cli.StringFlag{ - Name: fmt.Sprintf("%s_loglevel", strings.ToLower(r.FlagPrefix())), - Value: "info", - Usage: "Logrus log level default 'info', {panic,fatal,error,warn,info,debug,trace} available", - EnvVars: []string{fmt.Sprintf("%s_LOG_LEVEL", strings.ToUpper(r.FlagPrefix()))}, - }) +func (c *LogrusComponet) Flags(r *components.Components, flags []cli.Flag) []cli.Flag { + return []cli.Flag{ + &cli.StringFlag{ + Name: fmt.Sprintf("%s_loglevel", strings.ToLower(r.FlagPrefix())), + Value: "info", + Usage: "Logrus log level default 'info', {panic,fatal,error,warn,info,debug,trace} available", + EnvVars: []string{fmt.Sprintf("%s_LOG_LEVEL", strings.ToUpper(r.FlagPrefix()))}, + }, + } } func (c *LogrusComponet) Health(context context.Context) error { diff --git a/flags.go b/flags.go deleted file mode 100644 index 7c26ed6..0000000 --- a/flags.go +++ /dev/null @@ -1,27 +0,0 @@ -package components - -import "github.com/urfave/cli/v2" - -func MergeFlag(flags []cli.Flag, flag cli.Flag) []cli.Flag { - has := false - for _, f := range flags { - if f.Names()[0] == flag.Names()[0] { - has = true - break - } - } - - if has { - return flags - } - - return append(flags, flag) -} - -func MergeFlags(flags []cli.Flag, newFlags ...cli.Flag) []cli.Flag { - for _, f := range newFlags { - flags = MergeFlag(flags, f) - } - - return flags -} diff --git a/interface.go b/interface.go index b88b172..e8010e8 100644 --- a/interface.go +++ b/interface.go @@ -13,7 +13,7 @@ type Component interface { Initialized() bool Init(components *Components, cli *cli.Context) error Stop() error - MergeFlags(r *Components, flags []cli.Flag) []cli.Flag + Flags(r *Components, flags []cli.Flag) []cli.Flag Health(context context.Context) error WrapHandlerFunc(ctx context.Context, req server.Request, rsp interface{}) error