From 88826a3efe65261977edd2da90d9f6df17230380 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Henrique=20Guard=C3=A3o=20Gandarez?= Date: Tue, 26 Jan 2021 16:18:05 -0300 Subject: [PATCH] Add ini load options argument --- go.mod | 3 ++- go.sum | 4 ++-- viper.go | 12 +++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/go.mod b/go.mod index 812e7f3..c5e3aac 100644 --- a/go.mod +++ b/go.mod @@ -22,6 +22,7 @@ require ( github.com/stretchr/testify v1.4.0 github.com/subosito/gotenv v1.2.0 github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect - gopkg.in/ini.v1 v1.51.0 + github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 // indirect + gopkg.in/ini.v1 v1.62.0 gopkg.in/yaml.v2 v2.3.0 ) diff --git a/go.sum b/go.sum index 87a9297..8931753 100644 --- a/go.sum +++ b/go.sum @@ -573,8 +573,8 @@ gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qS gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= gopkg.in/gcfg.v1 v1.2.3/go.mod h1:yesOnuUOFQAhST5vPY4nbZsb/huCgGGXlipJsBn0b3o= -gopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno= -gopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.62.0 h1:duBzk771uxoUuOlyRLkHsygud9+5lrlGjdFBb4mSKDU= +gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/warnings.v0 v0.1.2/go.mod h1:jksf8JmL6Qr/oQM2OXTHunEvvTAsrWBLb6OOjuVWRNI= diff --git a/viper.go b/viper.go index a89efe9..60f9868 100644 --- a/viper.go +++ b/viper.go @@ -199,6 +199,9 @@ type Viper struct { configPermissions os.FileMode envPrefix string + // Specific commands for ini parsing + iniLoadOptions ini.LoadOptions + automaticEnvApplied bool envKeyReplacer StringReplacer allowEmptyEnv bool @@ -1637,7 +1640,7 @@ func (v *Viper) unmarshalReader(in io.Reader, c map[string]interface{}) error { } case "ini": - cfg := ini.Empty() + cfg := ini.Empty(v.iniLoadOptions) err := cfg.Append(buf.Bytes()) if err != nil { return ConfigParseError{err} @@ -2081,6 +2084,13 @@ func (v *Viper) SetConfigPermissions(perm os.FileMode) { v.configPermissions = perm.Perm() } +// IniLoadOptions sets the load options for ini parsing. +func IniLoadOptions(in ini.LoadOptions) Option { + return optionFunc(func(v *Viper) { + v.iniLoadOptions = in + }) +} + func (v *Viper) getConfigType() string { if v.configType != "" { return v.configType