package Env import ( "log" "os" "strconv" "strings" ) type EnvironmentVariable string func (v EnvironmentVariable) GetName() string { return string(v) } func (v EnvironmentVariable) GetEnvString(fallback string) string { if value, ok := os.LookupEnv(string(v)); ok { return value } return fallback } func (v EnvironmentVariable) GetEnvBool(fallback bool) bool { value, ok := os.LookupEnv(string(v)) if !ok { return fallback } value = strings.ToLower(value) trueValues := []string{"1", "true"} for _, x := range trueValues { if value == x { return true } } return false } func (v EnvironmentVariable) GetEnvInt(key string, fallback int64) int64 { if value, ok := os.LookupEnv(key); ok { i, err := strconv.ParseInt(value, 10, 64) if err != nil { log.Fatal(err) } return i } return fallback }