You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

64 lines
1.7 KiB
Go

package utils
import (
"os"
"strconv"
"time"
)
// FormatTime formats time in a standard format
func FormatTime(t time.Time) string {
return t.Format(time.RFC3339)
}
// GetEnvOrDefault returns environment variable value or default if not set
func GetEnvOrDefault(key, defaultValue string) string {
if value := os.Getenv(key); value != "" {
return value
}
return defaultValue
}
// GetEnvOrDefaultInt returns environment variable as int or default if not set/invalid
func GetEnvOrDefaultInt(key string, defaultValue int) int {
if value := os.Getenv(key); value != "" {
if intValue, err := strconv.Atoi(value); err == nil {
return intValue
}
}
return defaultValue
}
// GetEnvOrDefaultBool returns environment variable as bool or default if not set/invalid
func GetEnvOrDefaultBool(key string, defaultValue bool) bool {
if value := os.Getenv(key); value != "" {
if boolValue, err := strconv.ParseBool(value); err == nil {
return boolValue
}
}
return defaultValue
}
// GetEnvOrDefaultDuration returns environment variable as duration or default if not set/invalid
func GetEnvOrDefaultDuration(key string, defaultValue time.Duration) time.Duration {
if value := os.Getenv(key); value != "" {
if duration, err := time.ParseDuration(value); err == nil {
return duration
}
}
return defaultValue
}
// MustGetEnv returns environment variable value or panics if not set
func MustGetEnv(key string) string {
if value := os.Getenv(key); value != "" {
return value
}
panic("Required environment variable not set: " + key)
}
// IsEnvSet checks if an environment variable is set (even if empty)
func IsEnvSet(key string) bool {
_, exists := os.LookupEnv(key)
return exists
}