Add example regarding required flags with Cobra + Viper

This commit is contained in:
Miguel Elias dos Santos 2020-02-25 17:46:37 +11:00
parent 97ee7adfef
commit dc20f95f1f
1 changed files with 10 additions and 0 deletions

View File

@ -282,6 +282,16 @@ os.Setenv("SPF_ID", "13") // typically done outside of the app
id := Get("id") // 13
```
#### When working with *required flags with Cobra+Viper*, you must set the flag values after binding to them. Otherwise Cobra won't be aware of the value from any source other tha the CLI itself.
```go
serverCmd.Flags().VisitAll(func(f *pflag.Flag) {
if viper.IsSet(f.Name) && viper.GetString(f.Name) != "" {
serverCmd.Flags().Set(f.Name, viper.GetString(f.Name))
}
})
```
### Working with Flags
Viper has the ability to bind to flags. Specifically, Viper supports `Pflags`