Description
Currently we only output the dynamically generated flags and environments if something goes wrong. There is no manual way of outputing the flags. For example if we only use the env
loader, there is again no way to output the help message, because currently the help message is only defined inside the flag
load.
There a two ways to do it.
#1. Create a new interface
We create a new interface which every loader could
implement:
type Helper interface {
Help() string
}
If this is implemented via a loader, we'll have another function that will print those:
func PrintHelp(helper ...Helper) {}
func PrintHelpWriter(w io.Writer, helper ...Helper) {}
//usage
multiconfig.PrintHelp(flagLoader, envLoader)
This is totally optional, but at least it would imense helpful as we could generate those dynamically, as we do for envs, flags, etc...
#2. Extend the Loader
interface
This is will add a new method to the existing Loader
interface:
type Loader interface {
Load(s interface{}) error
Help() string
}
After that, if loader.Load(s)
fails it will output the help messages automatically (because the loader has access to the Help()
method now. Or we could manually invoke to output the help messages.
Opinions ?