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 }