From 593fb504b6f0145c43e62c22cfef6fe15f03daaa Mon Sep 17 00:00:00 2001 From: Almaz Sharipov Date: Mon, 31 Mar 2025 07:17:38 +0300 Subject: [PATCH] GetEnv --- src/app/env.go | 28 ++++++++++++++-------------- src/main.go | 13 ++++++------- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/app/env.go b/src/app/env.go index 977b210..b2ffb11 100644 --- a/src/app/env.go +++ b/src/app/env.go @@ -5,19 +5,19 @@ import ( "strconv" ) -func GetIntEnvOrDefault(env string, defaultValue uint32) uint32 { - strValue := os.Getenv(env) - - if len(strValue) == 0 { - return defaultValue - } else { - uintValue, err := strconv.ParseUint(strValue, 10, 32) - if err != nil { - Log.Error(env + " env value cannot be parsed as uint, reset to " + strconv.FormatUint(uint64(defaultValue), 10)) - return defaultValue - } else { - return uint32(uintValue) - } +func GetEnvString(key, defaultValue string) string { + if value, exists := os.LookupEnv(key); exists { + return value } - + return defaultValue +} + +func GetEnvInt(key string, defaultValue int) int { + if value, exists := os.LookupEnv(key); exists { + if intValue, err := strconv.Atoi(value); err == nil { + return intValue + } + Log.Errorf("Invalid integer value for %s, using default value: %d", key, defaultValue) + } + return defaultValue } diff --git a/src/main.go b/src/main.go index 443979d..06f3770 100644 --- a/src/main.go +++ b/src/main.go @@ -3,7 +3,6 @@ package main import ( "fmt" "net/http" - "os" "sql-proxy/src/app" "sql-proxy/src/db" @@ -18,12 +17,12 @@ func main() { var err error // Application params taken from OS environment - app.Log.SetLevel(logrus.Level(app.GetIntEnvOrDefault("LOG_LEVEL", 2))) - bindAddress := os.Getenv("BIND_ADDR") - bindPort := app.GetIntEnvOrDefault("BIND_PORT", 8080) - db.MaxRows = app.GetIntEnvOrDefault("MAX_ROWS", 10000) - tlsCert := os.Getenv("TLS_CERT") - tlsKey := os.Getenv("TLS_KEY") + app.Log.SetLevel(logrus.Level(app.GetEnvInt("LOG_LEVEL", 2))) + bindAddress := app.GetEnvString("BIND_ADDR", "localhost") + bindPort := app.GetEnvInt("BIND_PORT", 8080) + db.MaxRows = uint32(app.GetEnvInt("MAX_ROWS", 10000)) + tlsCert := app.GetEnvString("TLS_CERT", "") + tlsKey := app.GetEnvString("TLS_KEY", "") // Scheduled maintenance task go db.Handler.RunMaintenance()