43 lines
1.0 KiB
Go
43 lines
1.0 KiB
Go
package utils
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"time"
|
|
)
|
|
|
|
// GetEnv retrieves environment variable with fallback
|
|
func GetEnv(key, defaultValue string) string {
|
|
if value := os.Getenv(key); value != "" {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|
|
|
|
// GetEnvAsInt retrieves environment variable as integer with fallback
|
|
func GetEnvAsInt(key string, defaultValue int) int {
|
|
valueStr := GetEnv(key, "")
|
|
if value, err := strconv.Atoi(valueStr); err == nil {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|
|
|
|
// GetEnvAsBool retrieves environment variable as boolean with fallback
|
|
func GetEnvAsBool(key string, defaultValue bool) bool {
|
|
valueStr := GetEnv(key, "")
|
|
if value, err := strconv.ParseBool(valueStr); err == nil {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|
|
|
|
// GetEnvAsDuration retrieves environment variable as duration with fallback
|
|
func GetEnvAsDuration(key string, defaultValue time.Duration) time.Duration {
|
|
valueStr := GetEnv(key, "")
|
|
if value, err := time.ParseDuration(valueStr); err == nil {
|
|
return value
|
|
}
|
|
return defaultValue
|
|
}
|