Initial cloud-services repo - gateway service + pkg modules
This commit is contained in:
64
pkg/utils/envtool/env.go
Normal file
64
pkg/utils/envtool/env.go
Normal file
@@ -0,0 +1,64 @@
|
||||
package envtool
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
// GetEnv return enviroment variable or default value if not set
|
||||
func GetEnv(name string, defaultValue string) string {
|
||||
value, ok := os.LookupEnv(name)
|
||||
if ok && len(value) > 0 {
|
||||
return value
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
// GetEnvInt returns environment variable or default value if not set
|
||||
func GetEnvInt(name string, defaultValue int) int {
|
||||
value, ok := os.LookupEnv(name)
|
||||
if ok && len(value) > 0 {
|
||||
i, err := strconv.Atoi(value)
|
||||
if err == nil {
|
||||
return i
|
||||
}
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
// GetEnvInt returns environment variable or default value if not set
|
||||
func GetEnvInt64(name string, defaultValue int64) int64 {
|
||||
value, ok := os.LookupEnv(name)
|
||||
if ok && len(value) > 0 {
|
||||
i, err := strconv.ParseInt(value, 10, 0)
|
||||
if err == nil {
|
||||
return i
|
||||
}
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
|
||||
// GetEnvBool returns environment variable or default value if not set
|
||||
func GetEnvBool(name string, defaultValue bool) bool {
|
||||
value, ok := os.LookupEnv(name)
|
||||
if !ok {
|
||||
return defaultValue
|
||||
}
|
||||
val, err := strconv.ParseBool(value)
|
||||
if err != nil {
|
||||
return defaultValue
|
||||
}
|
||||
return val
|
||||
}
|
||||
|
||||
func GetEnvDuration(name string, defaultValue time.Duration) time.Duration {
|
||||
value, ok := os.LookupEnv(name)
|
||||
if ok && len(value) > 0 {
|
||||
d, err := time.ParseDuration(value)
|
||||
if err == nil {
|
||||
return d
|
||||
}
|
||||
}
|
||||
return defaultValue
|
||||
}
|
||||
66
pkg/utils/envtool/env_test.go
Normal file
66
pkg/utils/envtool/env_test.go
Normal file
@@ -0,0 +1,66 @@
|
||||
package envtool
|
||||
|
||||
import (
|
||||
"os"
|
||||
"strconv"
|
||||
"testing"
|
||||
|
||||
"fiskerinc.com/modules/testhelper"
|
||||
)
|
||||
|
||||
var defaultValue = "DEFAULT_VALUE"
|
||||
var existingValue = "EXISTING_VALUE"
|
||||
|
||||
var defaultInt = 0
|
||||
var existingInt = 1
|
||||
|
||||
var defaultBool = false
|
||||
var existingBool = true
|
||||
|
||||
func TestGetEnvDefaultValue(t *testing.T) {
|
||||
got := GetEnv("NON_EXISTING", defaultValue)
|
||||
if got != defaultValue {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Default value", defaultValue, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEnvExistingValue(t *testing.T) {
|
||||
const envName = "EXISTING"
|
||||
os.Setenv(envName, existingValue)
|
||||
got := GetEnv(envName, defaultValue)
|
||||
if got != existingValue {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Existing value", existingValue, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEnvIntDefaultValue(t *testing.T) {
|
||||
got := GetEnvInt("NON_EXISTING", defaultInt)
|
||||
if got != defaultInt {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Default value", defaultInt, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEnvIntExistingValue(t *testing.T) {
|
||||
const envName = "EXISTING"
|
||||
os.Setenv(envName, strconv.Itoa(existingInt))
|
||||
got := GetEnvInt(envName, defaultInt)
|
||||
if got != existingInt {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Existing value", existingInt, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEnvBoolDefaultValue(t *testing.T) {
|
||||
got := GetEnvBool("NON_EXISTING", defaultBool)
|
||||
if got != defaultBool {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Default Value", defaultBool, got)
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetEnvBoolExistingValue(t *testing.T) {
|
||||
const envName = "EXISTING"
|
||||
os.Setenv(envName, strconv.FormatBool(existingBool))
|
||||
got := GetEnvBool(envName, defaultBool)
|
||||
if got != existingBool {
|
||||
t.Errorf(testhelper.TestErrorTemplate, "Default Value", existingBool, got)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user