config/source/cli: fix default flag value loading (#1178)

Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
2020-02-08 02:14:34 +03:00
committed by GitHub
parent 99807a680c
commit 0bf6c9fc08
2 changed files with 53 additions and 8 deletions

View File

@@ -21,7 +21,9 @@ type cliSource struct {
func (c *cliSource) Read() (*source.ChangeSet, error) {
var changes map[string]interface{}
for _, name := range c.ctx.FlagNames() {
// directly using app cli flags, to access default values of not specified options
for _, f := range c.ctx.App.Flags {
name := f.Names()[0]
tmp := toEntry(name, c.ctx.Generic(name))
mergo.Map(&changes, tmp) // need to sort error handling
}
@@ -100,13 +102,10 @@ func NewSource(opts ...source.Option) source.Source {
var ctx *cli.Context
c, ok := options.Context.Value(contextKey{}).(*cli.Context)
if ok {
if c, ok := options.Context.Value(contextKey{}).(*cli.Context); ok {
ctx = c
}
// no context
if ctx == nil {
} else {
// no context
// get the default app/flags
app := cmd.App()
flags := app.Flags