Make most option functions return Option rather than OptionFunc.
This clarifies the godocs.
This commit is contained in:
+51
-51
@@ -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.
|
// Exit overrides the function used to terminate. This is useful for testing or interactive use.
|
||||||
func Exit(exit func(int)) OptionFunc {
|
func Exit(exit func(int)) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.Exit = exit
|
k.Exit = exit
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// NoDefaultHelp disables the default help flags.
|
// NoDefaultHelp disables the default help flags.
|
||||||
func NoDefaultHelp() OptionFunc {
|
func NoDefaultHelp() Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.noDefaultHelp = true
|
k.noDefaultHelp = true
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Name overrides the application name.
|
// Name overrides the application name.
|
||||||
func Name(name string) OptionFunc {
|
func Name(name string) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error {
|
k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error {
|
||||||
k.Model.Name = name
|
k.Model.Name = name
|
||||||
return nil
|
return nil
|
||||||
}))
|
}))
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Description sets the application description.
|
// Description sets the application description.
|
||||||
func Description(description string) OptionFunc {
|
func Description(description string) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error {
|
k.postBuildOptions = append(k.postBuildOptions, OptionFunc(func(k *Kong) error {
|
||||||
k.Model.Help = description
|
k.Model.Help = description
|
||||||
return nil
|
return nil
|
||||||
}))
|
}))
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// TypeMapper registers a mapper to a type.
|
// TypeMapper registers a mapper to a type.
|
||||||
func TypeMapper(typ reflect.Type, mapper Mapper) OptionFunc {
|
func TypeMapper(typ reflect.Type, mapper Mapper) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.registry.RegisterType(typ, mapper)
|
k.registry.RegisterType(typ, mapper)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// KindMapper registers a mapper to a kind.
|
// KindMapper registers a mapper to a kind.
|
||||||
func KindMapper(kind reflect.Kind, mapper Mapper) OptionFunc {
|
func KindMapper(kind reflect.Kind, mapper Mapper) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.registry.RegisterKind(kind, mapper)
|
k.registry.RegisterKind(kind, mapper)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ValueMapper registers a mapper to a field value.
|
// ValueMapper registers a mapper to a field value.
|
||||||
func ValueMapper(ptr interface{}, mapper Mapper) OptionFunc {
|
func ValueMapper(ptr interface{}, mapper Mapper) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.registry.RegisterValue(ptr, mapper)
|
k.registry.RegisterValue(ptr, mapper)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// NamedMapper registers a mapper to a name.
|
// NamedMapper registers a mapper to a name.
|
||||||
func NamedMapper(name string, mapper Mapper) OptionFunc {
|
func NamedMapper(name string, mapper Mapper) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.registry.RegisterName(name, mapper)
|
k.registry.RegisterName(name, mapper)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Writers overrides the default writers. Useful for testing or interactive use.
|
// Writers overrides the default writers. Useful for testing or interactive use.
|
||||||
func Writers(stdout, stderr io.Writer) OptionFunc {
|
func Writers(stdout, stderr io.Writer) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.Stdout = stdout
|
k.Stdout = stdout
|
||||||
k.Stderr = stderr
|
k.Stderr = stderr
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Bind binds values for hooks and Run() function arguments.
|
// Bind binds values for hooks and Run() function arguments.
|
||||||
@@ -133,61 +133,61 @@ func Writers(stdout, stderr io.Writer) OptionFunc {
|
|||||||
// AfterApply(...) error
|
// AfterApply(...) error
|
||||||
//
|
//
|
||||||
// Called before validation/assignment, and immediately after validation/assignment, respectively.
|
// Called before validation/assignment, and immediately after validation/assignment, respectively.
|
||||||
func Bind(args ...interface{}) OptionFunc {
|
func Bind(args ...interface{}) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.bindings.add(args...)
|
k.bindings.add(args...)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// BindTo allows binding of implementations to interfaces.
|
// BindTo allows binding of implementations to interfaces.
|
||||||
//
|
//
|
||||||
// BindTo(impl, (*iface)(nil))
|
// BindTo(impl, (*iface)(nil))
|
||||||
func BindTo(impl, iface interface{}) OptionFunc {
|
func BindTo(impl, iface interface{}) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.bindings[reflect.TypeOf(iface).Elem()] = reflect.ValueOf(impl)
|
k.bindings[reflect.TypeOf(iface).Elem()] = reflect.ValueOf(impl)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Help printer to use.
|
// Help printer to use.
|
||||||
func Help(help HelpPrinter) OptionFunc {
|
func Help(help HelpPrinter) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.help = help
|
k.help = help
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConfigureHelp sets the HelpOptions to use for printing help.
|
// ConfigureHelp sets the HelpOptions to use for printing help.
|
||||||
func ConfigureHelp(options HelpOptions) OptionFunc {
|
func ConfigureHelp(options HelpOptions) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.helpOptions = options
|
k.helpOptions = options
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// UsageOnError configures Kong to display context-sensitive usage if FatalIfErrorf is called with an error.
|
// UsageOnError configures Kong to display context-sensitive usage if FatalIfErrorf is called with an error.
|
||||||
func UsageOnError() OptionFunc {
|
func UsageOnError() Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.usageOnError = true
|
k.usageOnError = true
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ClearResolvers clears all existing resolvers.
|
// ClearResolvers clears all existing resolvers.
|
||||||
func ClearResolvers() OptionFunc {
|
func ClearResolvers() Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.resolvers = nil
|
k.resolvers = nil
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// Resolvers registers flag resolvers.
|
// Resolvers registers flag resolvers.
|
||||||
func Resolvers(resolvers ...Resolver) OptionFunc {
|
func Resolvers(resolvers ...Resolver) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.resolvers = append(k.resolvers, resolvers...)
|
k.resolvers = append(k.resolvers, resolvers...)
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ConfigurationLoader is a function that builds a resolver from a file.
|
// 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.
|
// Note: The JSON function is a ConfigurationLoader.
|
||||||
//
|
//
|
||||||
// ~ expansion will occur on the provided paths.
|
// ~ expansion will occur on the provided paths.
|
||||||
func Configuration(loader ConfigurationLoader, paths ...string) OptionFunc {
|
func Configuration(loader ConfigurationLoader, paths ...string) Option {
|
||||||
return func(k *Kong) error {
|
return OptionFunc(func(k *Kong) error {
|
||||||
k.loader = loader
|
k.loader = loader
|
||||||
for _, path := range paths {
|
for _, path := range paths {
|
||||||
resolver, _ := k.LoadConfig(path)
|
resolver, _ := k.LoadConfig(path)
|
||||||
@@ -210,7 +210,7 @@ func Configuration(loader ConfigurationLoader, paths ...string) OptionFunc {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
// ExpandPath is a helper function to expand a relative or home-relative path to an absolute path.
|
// ExpandPath is a helper function to expand a relative or home-relative path to an absolute path.
|
||||||
|
|||||||
Reference in New Issue
Block a user