From e77b942993b6952f82a9f5f7fcb23797b72be92f Mon Sep 17 00:00:00 2001 From: John Alberts Date: Mon, 26 Jan 2015 14:08:43 -0800 Subject: [PATCH] Add support for STATSD_* environment variables --- configuration/configuration.go | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/configuration/configuration.go b/configuration/configuration.go index 4d0f6bc..dfe29c0 100644 --- a/configuration/configuration.go +++ b/configuration/configuration.go @@ -5,6 +5,7 @@ import ( "io/ioutil" "log" "os" + "strconv" ) var logger = log.New(os.Stdout, "", log.Ldate|log.Ltime|log.Lshortfile) @@ -52,6 +53,9 @@ func FromFile(filePath string) (Configuration, error) { setValueFromEnv(&conf.HAProxy.TemplatePath, "HAPROXY_TEMPLATE_PATH") setValueFromEnv(&conf.HAProxy.OutputPath, "HAPROXY_OUTPUT_PATH") setValueFromEnv(&conf.HAProxy.ReloadCommand, "HAPROXY_RELOAD_CMD") + setValueFromEnv(&conf.StatsD.Host, "STATSD_HOST") + setValueFromEnv(&conf.StatsD.Prefix, "STATSD_PREFIX") + setBoolValueFromEnv(&conf.StatsD.Enabled, "STATSD_ENABLED") return *conf, err } @@ -62,3 +66,17 @@ func setValueFromEnv(field *string, envVar string) { *field = env } } + +func setBoolValueFromEnv(field *bool, envVar string) { +env := os.Getenv(envVar) +if len(env) > 0 { + log.Printf("Using environment override %s=%t", envVar, env) + x, err := strconv.ParseBool(env) + if err != nil { + log.Printf("Error converting boolean value: %s\n", err) + } + *field = x +} else { + log.Printf("Environment variable not set: %s", envVar) +} +}