forked from TrueCloudLab/frostfs-node
Anton Nikiforov
ef222e2487
Add `opts.WithViper`, set opts struct as private. Signed-off-by: Anton Nikiforov <an.nikiforov@yadro.com>
49 lines
1,003 B
Go
49 lines
1,003 B
Go
package config
|
|
|
|
import "github.com/spf13/viper"
|
|
|
|
type opts struct {
|
|
path string
|
|
configDir string
|
|
envPrefix string
|
|
v *viper.Viper
|
|
}
|
|
|
|
func defaultOpts() *opts {
|
|
return new(opts)
|
|
}
|
|
|
|
// Option allows to set an optional parameter of the Config.
|
|
type Option func(*opts)
|
|
|
|
// WithConfigFile returns an option to set the system path
|
|
// to the configuration file.
|
|
func WithConfigFile(path string) Option {
|
|
return func(o *opts) {
|
|
o.path = path
|
|
}
|
|
}
|
|
|
|
// WithConfigDir returns an option to set the system path
|
|
// to the directory with configuration files.
|
|
func WithConfigDir(path string) Option {
|
|
return func(o *opts) {
|
|
o.configDir = path
|
|
}
|
|
}
|
|
|
|
// WithEnvPrefix returns an option to defines
|
|
// a prefix that ENVIRONMENT variables will use.
|
|
func WithEnvPrefix(envPrefix string) Option {
|
|
return func(o *opts) {
|
|
o.envPrefix = envPrefix
|
|
}
|
|
}
|
|
|
|
// WithViper returns an option to defines
|
|
// a predefined viper.Viper.
|
|
func WithViper(v *viper.Viper) Option {
|
|
return func(o *opts) {
|
|
o.v = v
|
|
}
|
|
}
|