46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package utils
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// GetEnv gets environment variable with fallback
|
|
func GetEnv(key, fallback string) string {
|
|
if value, exists := os.LookupEnv(key); exists {
|
|
return value
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
// GetEnvInt gets environment variable as integer with fallback
|
|
func GetEnvInt(key string, fallback int) int {
|
|
if value, exists := os.LookupEnv(key); exists {
|
|
if intVal, err := strconv.Atoi(value); err == nil {
|
|
return intVal
|
|
}
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
// GetEnvBool gets environment variable as boolean with fallback
|
|
func GetEnvBool(key string, fallback bool) bool {
|
|
if value, exists := os.LookupEnv(key); exists {
|
|
if boolVal, err := strconv.ParseBool(value); err == nil {
|
|
return boolVal
|
|
}
|
|
}
|
|
return fallback
|
|
}
|
|
|
|
// GetEnvDuration gets environment variable as time.Duration with fallback
|
|
func GetEnvDuration(key string, fallback time.Duration) time.Duration {
|
|
if value, exists := os.LookupEnv(key); exists {
|
|
if intVal, err := strconv.Atoi(value); err == nil {
|
|
return time.Duration(intVal) * time.Second
|
|
}
|
|
}
|
|
return fallback
|
|
}
|