From 8c83948cffcc5d7f5520be2793ba1818380ce82a Mon Sep 17 00:00:00 2001 From: Alec Thomas Date: Fri, 21 Jun 2019 09:51:30 +1000 Subject: [PATCH] Make most option functions return Option rather than OptionFunc. This clarifies the godocs. --- options.go | 102 ++++++++++++++++++++++++++--------------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/options.go b/options.go index 450c34b..aec7164 100644 --- a/options.go +++ b/options.go @@ -44,82 +44,82 @@ func (v Vars) CloneWith(vars Vars) Vars { } // Exit overrides the function used to terminate. This is useful for testing or interactive use. -func Exit(exit func(int)) OptionFunc { - return func(k *Kong) error { +func Exit(exit func(int)) Option { + return OptionFunc(func(k *Kong) error { k.Exit = exit return nil - } + }) } // NoDefaultHelp disables the default help flags. -func NoDefaultHelp() OptionFunc { - return func(k *Kong) error { +func NoDefaultHelp() Option { + return OptionFunc(func(k *Kong) error { k.noDefaultHelp = true return nil - } + }) } // Name overrides the application name. -func Name(name string) OptionFunc { - return func(k *Kong) error { +func Name(name string) Option { + return OptionFunc(func(k *Kong) error { k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error { k.Model.Name = name return nil })) return nil - } + }) } // Description sets the application description. -func Description(description string) OptionFunc { - return func(k *Kong) error { +func Description(description string) Option { + return OptionFunc(func(k *Kong) error { k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error { k.Model.Help = description return nil })) return nil - } + }) } // TypeMapper registers a mapper to a type. -func TypeMapper(typ reflect.Type, mapper Mapper) OptionFunc { - return func(k *Kong) error { +func TypeMapper(typ reflect.Type, mapper Mapper) Option { + return OptionFunc(func(k *Kong) error { k.registry.RegisterType(typ, mapper) return nil - } + }) } // KindMapper registers a mapper to a kind. -func KindMapper(kind reflect.Kind, mapper Mapper) OptionFunc { - return func(k *Kong) error { +func KindMapper(kind reflect.Kind, mapper Mapper) Option { + return OptionFunc(func(k *Kong) error { k.registry.RegisterKind(kind, mapper) return nil - } + }) } // ValueMapper registers a mapper to a field value. -func ValueMapper(ptr interface{}, mapper Mapper) OptionFunc { - return func(k *Kong) error { +func ValueMapper(ptr interface{}, mapper Mapper) Option { + return OptionFunc(func(k *Kong) error { k.registry.RegisterValue(ptr, mapper) return nil - } + }) } // NamedMapper registers a mapper to a name. -func NamedMapper(name string, mapper Mapper) OptionFunc { - return func(k *Kong) error { +func NamedMapper(name string, mapper Mapper) Option { + return OptionFunc(func(k *Kong) error { k.registry.RegisterName(name, mapper) return nil - } + }) } // Writers overrides the default writers. Useful for testing or interactive use. -func Writers(stdout, stderr io.Writer) OptionFunc { - return func(k *Kong) error { +func Writers(stdout, stderr io.Writer) Option { + return OptionFunc(func(k *Kong) error { k.Stdout = stdout k.Stderr = stderr return nil - } + }) } // Bind binds values for hooks and Run() function arguments. @@ -133,61 +133,61 @@ func Writers(stdout, stderr io.Writer) OptionFunc { // AfterApply(...) error // // Called before validation/assignment, and immediately after validation/assignment, respectively. -func Bind(args ...interface{}) OptionFunc { - return func(k *Kong) error { +func Bind(args ...interface{}) Option { + return OptionFunc(func(k *Kong) error { k.bindings.add(args...) return nil - } + }) } // BindTo allows binding of implementations to interfaces. // // BindTo(impl, (*iface)(nil)) -func BindTo(impl, iface interface{}) OptionFunc { - return func(k *Kong) error { +func BindTo(impl, iface interface{}) Option { + return OptionFunc(func(k *Kong) error { k.bindings[reflect.TypeOf(iface).Elem()] = reflect.ValueOf(impl) return nil - } + }) } // Help printer to use. -func Help(help HelpPrinter) OptionFunc { - return func(k *Kong) error { +func Help(help HelpPrinter) Option { + return OptionFunc(func(k *Kong) error { k.help = help return nil - } + }) } // ConfigureHelp sets the HelpOptions to use for printing help. -func ConfigureHelp(options HelpOptions) OptionFunc { - return func(k *Kong) error { +func ConfigureHelp(options HelpOptions) Option { + return OptionFunc(func(k *Kong) error { k.helpOptions = options return nil - } + }) } // UsageOnError configures Kong to display context-sensitive usage if FatalIfErrorf is called with an error. -func UsageOnError() OptionFunc { - return func(k *Kong) error { +func UsageOnError() Option { + return OptionFunc(func(k *Kong) error { k.usageOnError = true return nil - } + }) } // ClearResolvers clears all existing resolvers. -func ClearResolvers() OptionFunc { - return func(k *Kong) error { +func ClearResolvers() Option { + return OptionFunc(func(k *Kong) error { k.resolvers = nil return nil - } + }) } // Resolvers registers flag resolvers. -func Resolvers(resolvers ...Resolver) OptionFunc { - return func(k *Kong) error { +func Resolvers(resolvers ...Resolver) Option { + return OptionFunc(func(k *Kong) error { k.resolvers = append(k.resolvers, resolvers...) return nil - } + }) } // ConfigurationLoader is a function that builds a resolver from a file. @@ -200,8 +200,8 @@ type ConfigurationLoader func(r io.Reader) (Resolver, error) // Note: The JSON function is a ConfigurationLoader. // // ~ expansion will occur on the provided paths. -func Configuration(loader ConfigurationLoader, paths ...string) OptionFunc { - return func(k *Kong) error { +func Configuration(loader ConfigurationLoader, paths ...string) Option { + return OptionFunc(func(k *Kong) error { k.loader = loader for _, path := range paths { resolver, _ := k.LoadConfig(path) @@ -210,7 +210,7 @@ func Configuration(loader ConfigurationLoader, paths ...string) OptionFunc { } } return nil - } + }) } // ExpandPath is a helper function to expand a relative or home-relative path to an absolute path.