diff --git a/viper.go b/viper.go index 094c1b6..90900be 100644 --- a/viper.go +++ b/viper.go @@ -372,6 +372,14 @@ func (v *Viper) BindPFlags(flags *pflag.FlagSet) (err error) { } 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 }