frostfs-node/cmd/neofs-node/config/calls.go
Leonard Lyubich 7e11bf9a55 [#493] cmd/node: Implement a basic configuration component
Create `config` package nearby storage node application. Implement `Config`
as a wrapper over `viper.Viper` that provides the minimum functionality
required by the application.

The constructor allows you to read the config from the file. Methods are
provided for reading subsections and values from the config tree. Helper
functions are implemented to cast a value to native Go types.

Signed-off-by: Leonard Lyubich <leonard@nspcc.ru>
2021-06-01 11:45:38 +03:00

28 lines
566 B
Go

package config
import (
"github.com/spf13/viper"
)
// Sub returns sub-section of the Config by name.
func (x *Config) Sub(name string) *Config {
return (*Config)(
(*viper.Viper)(x).Sub(name),
)
}
// Value returns configuration value by name.
//
// Result can be casted to a particular type
// via corresponding function (e.g. StringSlice).
// Note: casting via Go `.()` operator is not
// recommended.
//
// Returns nil if config is nil.
func (x *Config) Value(name string) interface{} {
if x != nil {
return (*viper.Viper)(x).Get(name)
}
return nil
}