From bf641426ac2b9e24f2e2deb9451c21c1746810dd Mon Sep 17 00:00:00 2001 From: Kiril Zvezdarov Date: Wed, 1 Apr 2015 21:42:06 -0400 Subject: [PATCH] Set default values when binding the whole flagset --- viper.go | 8 ++++++++ 1 file changed, 8 insertions(+) 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 }