summaryrefslogtreecommitdiff
path: root/vendor/github.com/spf13/viper/viper.go
diff options
context:
space:
mode:
authorLibravatar kim <89579420+NyaaaWhatsUpDoc@users.noreply.github.com>2025-04-01 16:21:59 +0000
committerLibravatar GitHub <noreply@github.com>2025-04-01 18:21:59 +0200
commitb0873972ecb6d9977a36898d8281649d38c17df7 (patch)
tree1b0eb8a89c99058d443e6550e4dfa3ba347804a7 /vendor/github.com/spf13/viper/viper.go
parentupdate modernc.org/sqlite to v1.37.0-concurrrency-workaround (#3958) (diff)
downloadgotosocial-b0873972ecb6d9977a36898d8281649d38c17df7.tar.xz
[chore] bump golang.org/x/net@v0.38.0, github.com/gin-contrib/cors@v1.7.4, github.com/spf13/viper@v1.20.1, github.com/tdewolff/minify/v2@v2.22.4 (#3959)
Diffstat (limited to 'vendor/github.com/spf13/viper/viper.go')
-rw-r--r--vendor/github.com/spf13/viper/viper.go32
1 files changed, 20 insertions, 12 deletions
diff --git a/vendor/github.com/spf13/viper/viper.go b/vendor/github.com/spf13/viper/viper.go
index f900e58b1..a58d757bd 100644
--- a/vendor/github.com/spf13/viper/viper.go
+++ b/vendor/github.com/spf13/viper/viper.go
@@ -1535,27 +1535,29 @@ func (v *Viper) MergeInConfig() error {
func ReadConfig(in io.Reader) error { return v.ReadConfig(in) }
func (v *Viper) ReadConfig(in io.Reader) error {
- if v.configType == "" {
- return errors.New("cannot decode configuration: config type is not set")
+ config := make(map[string]any)
+
+ err := v.unmarshalReader(in, config)
+ if err != nil {
+ return err
}
- v.config = make(map[string]any)
- return v.unmarshalReader(in, v.config)
+ v.config = config
+
+ return nil
}
// MergeConfig merges a new configuration with an existing config.
func MergeConfig(in io.Reader) error { return v.MergeConfig(in) }
func (v *Viper) MergeConfig(in io.Reader) error {
- if v.configType == "" {
- return errors.New("cannot decode configuration: config type is not set")
- }
+ config := make(map[string]any)
- cfg := make(map[string]any)
- if err := v.unmarshalReader(in, cfg); err != nil {
+ if err := v.unmarshalReader(in, config); err != nil {
return err
}
- return v.MergeConfigMap(cfg)
+
+ return v.MergeConfigMap(config)
}
// MergeConfigMap merges the configuration from the map given with an existing config.
@@ -1662,15 +1664,21 @@ func (v *Viper) writeConfig(filename string, force bool) error {
}
func (v *Viper) unmarshalReader(in io.Reader, c map[string]any) error {
+ format := strings.ToLower(v.getConfigType())
+ if format == "" {
+ return errors.New("cannot decode configuration: unable to determine config type")
+ }
+
buf := new(bytes.Buffer)
buf.ReadFrom(in)
- format := strings.ToLower(v.getConfigType())
-
+ // TODO: remove this once SupportedExts is deprecated/removed
if !slices.Contains(SupportedExts, format) {
return UnsupportedConfigError(format)
}
+ // TODO: return [UnsupportedConfigError] if the registry does not contain the format
+ // TODO: consider deprecating this error type
decoder, err := v.decoderRegistry.Decoder(format)
if err != nil {
return ConfigParseError{err}