forked from TrueCloudLab/frostfs-node
[#125] node: Avoid panic when reading config
Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
This commit is contained in:
parent
d390f093e0
commit
eb7be82e87
2 changed files with 9 additions and 5 deletions
|
@ -35,7 +35,11 @@ type Prm struct{}
|
|||
// configuration values are read from it.
|
||||
// Otherwise, Config is a degenerate tree.
|
||||
func New(_ Prm, opts ...configViper.Option) *Config {
|
||||
v, o := configViper.CreateViper(opts...)
|
||||
v, o, err := configViper.CreateViper(opts...)
|
||||
|
||||
if err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
return &Config{
|
||||
v: v,
|
||||
|
|
|
@ -15,7 +15,7 @@ const (
|
|||
EnvSeparator = "_"
|
||||
)
|
||||
|
||||
func CreateViper(opts ...Option) (*viper.Viper, *Opts) {
|
||||
func CreateViper(opts ...Option) (*viper.Viper, *Opts, error) {
|
||||
v := viper.New()
|
||||
|
||||
o := DefaultOpts()
|
||||
|
@ -34,17 +34,17 @@ func CreateViper(opts ...Option) (*viper.Viper, *Opts) {
|
|||
|
||||
err := v.ReadInConfig()
|
||||
if err != nil {
|
||||
panic(fmt.Errorf("failed to read config: %w", err))
|
||||
return nil, nil, fmt.Errorf("failed to read config: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
if o.ConfigDir != "" {
|
||||
if err := config.ReadConfigDir(v, o.ConfigDir); err != nil {
|
||||
panic(fmt.Errorf("failed to read config dir: %w", err))
|
||||
return nil, nil, fmt.Errorf("failed to read config dir: %w", err)
|
||||
}
|
||||
}
|
||||
|
||||
return v, o
|
||||
return v, o, nil
|
||||
}
|
||||
|
||||
func ReloadViper(v *viper.Viper, o Opts) error {
|
||||
|
|
Loading…
Reference in a new issue