// Test if the named flag is a boolean flag. func isBooleanFlag(name string, f *flag.FlagSet) bool { flag := f.Lookup(name) if flag == nil { return false } return flag.Value.Type() == "bool" }
// Test if the named flag is a boolean flag. func isBooleanShortFlag(name string, f *flag.FlagSet) bool { result := false f.VisitAll(func(f *flag.Flag) { if f.Shorthand == name && f.Value.Type() == "bool" { result = true } }) return result }
func (v *Viper) BindPFlags(flags *pflag.FlagSet) (err error) { flags.VisitAll(func(flag *pflag.Flag) { if err != nil { // an error has been encountered in one of the previous flags return } err = v.BindPFlag(flag.Name, flag) switch flag.Value.Type() { case "int", "int8", "int16", "int32", "int64": v.SetDefault(flag.Name, cast.ToInt(flag.Value.String())) case "bool": v.SetDefault(flag.Name, cast.ToBool(flag.Value.String())) default: v.SetDefault(flag.Name, flag.Value.String()) } }) return }