diff options
Diffstat (limited to 'internal/config/config.go')
-rw-r--r-- | internal/config/config.go | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/internal/config/config.go b/internal/config/config.go index be7dcb9..df69bce 100644 --- a/internal/config/config.go +++ b/internal/config/config.go @@ -25,7 +25,8 @@ type URL struct { func (u *URL) UnmarshalText(text []byte) (err error) { u.URL, err = url.Parse(string(text)) - return err + + return errors.Wrapf(err, "could not parse URL %s", string(text)) } type Config struct { @@ -51,15 +52,15 @@ func GetConfig() (*Config, error) { log.Debug("reading config.toml") _, err := toml.DecodeFile("config.toml", &config) if err != nil { - var pathError *fs.PathError - var tomlError toml.ParseError - if errors.As(err, &pathError) { - return nil, errors.WithMessage(err, "could not read configuration") - } else if errors.As(err, &tomlError) { - return nil, errors.WithMessage(err, tomlError.ErrorWithUsage()) - } else { - return nil, errors.Wrap(err, "config error") + switch t := err.(type) { + case *fs.PathError: + return nil, errors.WithMessage(t, "could not read configuration") + case *toml.ParseError: + return nil, errors.WithMessage(t, t.ErrorWithUsage()) } + + return nil, errors.Wrap(err, "config error") } + return &config, nil } |