From c861bdefb7e99feac876a9c3c7673e73f634842d 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 0fed695..7099b9c 100644 --- a/viper.go +++ b/viper.go @@ -429,6 +429,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 }