diff options
Diffstat (limited to 'pkg/config/config.go')
-rw-r--r-- | pkg/config/config.go | 24 |
1 files changed, 6 insertions, 18 deletions
diff --git a/pkg/config/config.go b/pkg/config/config.go index a683014..744f4c3 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -1,15 +1,12 @@ package config import ( - "bytes" "crypto/tls" "crypto/x509" - "fmt" "github.com/creasty/defaults" "github.com/goccy/go-yaml" "github.com/jessevdk/go-flags" "github.com/pkg/errors" - "io/ioutil" "os" ) @@ -19,8 +16,6 @@ type Config struct { Redis Redis `yaml:"redis"` Logging Logging `yaml:"logging"` Retention Retention `yaml:"retention"` - - DecodeWarning error `yaml:"-"` } // Validate checks constraints in the supplied configuration and returns an error if they are violated. @@ -51,13 +46,14 @@ type Flags struct { // FromYAMLFile returns a new Config value created from the given YAML config file. func FromYAMLFile(name string) (*Config, error) { - f, err := os.ReadFile(name) + f, err := os.Open(name) if err != nil { - return nil, errors.Wrap(err, "can't read YAML file "+name) + return nil, errors.Wrap(err, "can't open YAML file "+name) } + defer f.Close() c := &Config{} - d := yaml.NewDecoder(bytes.NewReader(f)) + d := yaml.NewDecoder(f, yaml.DisallowUnknownField()) if err := defaults.Set(c); err != nil { return nil, errors.Wrap(err, "can't set config defaults") @@ -67,16 +63,8 @@ func FromYAMLFile(name string) (*Config, error) { return nil, errors.Wrap(err, "can't parse YAML file "+name) } - // Decode again with yaml.DisallowUnknownField() (like v1.2 will do) and issue a warning if it returns an error. - c.DecodeWarning = yaml.NewDecoder(bytes.NewReader(f), yaml.DisallowUnknownField()).Decode(&Config{}) - if err := c.Validate(); err != nil { - const msg = "invalid configuration" - if warn := c.DecodeWarning; warn != nil { - return nil, fmt.Errorf("%s: %w\n\nwarning: ignored unknown config option:\n\n%v", msg, err, warn) - } else { - return nil, errors.Wrap(err, msg) - } + return nil, errors.Wrap(err, "invalid configuration") } return c, nil @@ -129,7 +117,7 @@ func (t *TLS) MakeConfig(serverName string) (*tls.Config, error) { if t.Insecure { tlsConfig.InsecureSkipVerify = true } else if t.Ca != "" { - raw, err := ioutil.ReadFile(t.Ca) + raw, err := os.ReadFile(t.Ca) if err != nil { return nil, errors.Wrap(err, "can't read CA file") } |