65 lines
1.0 KiB
Go
65 lines
1.0 KiB
Go
package env
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
"time"
|
|
)
|
|
|
|
func GetString(key, fallback string) string {
|
|
val, ok := os.LookupEnv(key)
|
|
if !ok {
|
|
return fallback
|
|
}
|
|
return val
|
|
}
|
|
|
|
func GetInt(key string, fallback int) int {
|
|
val, ok := os.LookupEnv(key)
|
|
if !ok {
|
|
return fallback
|
|
}
|
|
valAsInt, err := strconv.Atoi(val)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return valAsInt
|
|
}
|
|
|
|
func GetDuration(key string, fallback string) time.Duration {
|
|
parsedFallback, _ := time.ParseDuration(fallback)
|
|
|
|
val, ok := os.LookupEnv(key)
|
|
if !ok {
|
|
return parsedFallback
|
|
}
|
|
|
|
parsedVal, err := time.ParseDuration(val)
|
|
if err != nil {
|
|
return parsedFallback
|
|
}
|
|
|
|
return parsedVal
|
|
}
|
|
|
|
func GetBool(key string, fallback bool) bool {
|
|
val, ok := os.LookupEnv(key)
|
|
if !ok {
|
|
return fallback
|
|
}
|
|
valAsBool, err := strconv.ParseBool(val)
|
|
if err != nil {
|
|
return fallback
|
|
}
|
|
return valAsBool
|
|
}
|
|
|
|
func GetList(key string, fallback []string) []string {
|
|
val, ok := os.LookupEnv(key)
|
|
if !ok {
|
|
return fallback
|
|
}
|
|
return strings.Split(val, ",")
|
|
}
|