diff --git a/cmd_root.go b/cmd_root.go index ac502fd..bee5f27 100644 --- a/cmd_root.go +++ b/cmd_root.go @@ -78,6 +78,10 @@ func Command(opt ...Option) Option { } } +func Arguments(f func(cmd *cobra.Command)) Option { + return f +} + func Version(ver string) Option { return func(cmd *cobra.Command) { cmd.Version = ver diff --git a/container/container.go b/container/container.go index 1d31a5c..93f0071 100644 --- a/container/container.go +++ b/container/container.go @@ -52,7 +52,14 @@ type ProviderContainer struct { type Providers []ProviderContainer -func (p Providers) With(pcs ...Providers) Providers { +func (p Providers) With(pcs ...func(...opt.Option) error) Providers { + for _, pc := range pcs { + p = append(p, ProviderContainer{Provider: pc}) + } + return p +} + +func (p Providers) WithProviders(pcs ...Providers) Providers { for _, pc := range pcs { p = append(p, pc...) } diff --git a/contracts/http.go b/contracts/http.go index 585b66d..8d13405 100644 --- a/contracts/http.go +++ b/contracts/http.go @@ -1,8 +1,5 @@ package contracts -type HttpRoute interface{} - -type HttpService interface { - Serve() error - GetEngine() interface{} +type HttpRoute interface { + Register() error }