// Created on savesnippets.com ยท https://savesnippets.com/gLqpEh9OsiGBLS package main import ( "fmt" "os" "strconv" "time" ) func envStr(key, def string) string { if v, ok := os.LookupEnv(key); ok { return v } return def } func envInt(key string, def int) int { if v, ok := os.LookupEnv(key); ok { if n, err := strconv.Atoi(v); err == nil { return n } } return def } func envBool(key string, def bool) bool { if v, ok := os.LookupEnv(key); ok { if b, err := strconv.ParseBool(v); err == nil { return b } } return def } func envDuration(key string, def time.Duration) time.Duration { if v, ok := os.LookupEnv(key); ok { if d, err := time.ParseDuration(v); err == nil { return d } } return def } func main() { port := envInt("PORT", 8080) debug := envBool("DEBUG", false) timeout := envDuration("HTTP_TIMEOUT", 5*time.Second) name := envStr("APP_NAME", "myapp") fmt.Printf("port=%d debug=%t timeout=%s name=%s\n", port, debug, timeout, name) }