feat: allow setting options on the global viper instance

Signed-off-by: Mark Sagi-Kazar <mark.sagikazar@gmail.com>
This commit is contained in:
Mark Sagi-Kazar 2024-06-05 09:26:25 +02:00 committed by Márk Sági-Kazár
parent a42c1b9f76
commit 3640bcdc46

View file

@ -271,6 +271,23 @@ func NewWithOptions(opts ...Option) *Viper {
return v
}
// SetOptions sets the options on the global Viper instance.
//
// Be careful when using this function: subsequent calls may override options you set.
// It's always better to use a local Viper instance.
func SetOptions(opts ...Option) {
keyDelim := v.keyDelim
for _, opt := range opts {
opt.apply(v)
}
// reset encoding if key delimiter changed
if keyDelim != v.keyDelim {
v.resetEncoding()
}
}
// Reset is intended for testing, will reset all to default settings.
// In the public interface for the viper package so applications
// can use it in their testing as well.