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 }