package env import ( "os" "strings" ) // Get an environment variable as a boolean, specifying a default value if its // not set or can't be parsed properly into a bool func Bool(key string, defaultValue bool) bool { val, exists := os.LookupEnv(key) if !exists { return defaultValue } truthy := map[string]bool{ "true": true, "t": true, "yes": true, "y": true, "on": true, "1": true, "enable": true, "enabled": true, "active": true, "affirmative": true, } falsy := map[string]bool{ "false": false, "f": false, "no": false, "n": false, "off": false, "0": false, "disable": false, "disabled": false, "inactive": false, "negative": false, } normalized := strings.TrimSpace(strings.ToLower(val)) if val, ok := truthy[normalized]; ok { return val } if val, ok := falsy[normalized]; ok { return val } return defaultValue }