Пример #1
0
// NewConsulFromConfig initializes Consul client based on config + environment overrides
func NewConsulFromConfig(config *confer.Config, configPrefix string) (client *api.Client, consulPrefix string, err error) {
	upperPrefix := strings.ToUpper(configPrefix)

	config.BindEnv(upperPrefix+"_ENABLED", configPrefix+".enabled")
	config.BindEnv(upperPrefix+"_SCHEME", configPrefix+".scheme")
	config.BindEnv(upperPrefix+"_ADDRESS", configPrefix+".address")
	config.BindEnv(upperPrefix+"_PREFIX", configPrefix+".prefix")
	config.BindEnv(upperPrefix+"_TOKEN", configPrefix+".token")

	if !config.GetBool(configPrefix + ".enabled") {
		// Consul is disabled
		return
	}

	conf := api.DefaultConfig()
	conf.Scheme = config.GetString(configPrefix + ".scheme")
	conf.Address = config.GetString(configPrefix + ".address")
	conf.Token = config.GetString(configPrefix + ".token")

	consulPrefix = config.GetString(configPrefix + ".prefix")
	client, err = api.NewClient(conf)

	return
}