github.com/bingoohuang/gg@v0.0.0-20240325092523-45da7dee9335/pkg/osx/env/env.go (about) 1 package env 2 3 import ( 4 "log" 5 "os" 6 "strconv" 7 "strings" 8 9 "github.com/bingoohuang/gg/pkg/man" 10 ) 11 12 func Bool(envName string, defaultValue bool) (value bool) { 13 switch s := os.Getenv(envName); strings.ToLower(s) { 14 case "yes", "y", "1", "on", "true", "t": 15 return true 16 case "no", "n", "0", "off", "false", "f": 17 return false 18 } 19 return defaultValue 20 } 21 22 func Int(envName string, defaultValue int) int { 23 if s := os.Getenv(envName); s != "" { 24 if size, err := strconv.Atoi(s); err != nil { 25 log.Printf("parse env %s=%s failed: %+v", envName, s, err) 26 } else { 27 return size 28 } 29 } 30 return defaultValue 31 } 32 33 func Size(envName string, defaultValue int) int { 34 if s := os.Getenv(envName); s != "" { 35 if size, err := man.ParseBytes(s); err != nil { 36 log.Printf("parse env %s=%s failed: %+v", envName, s, err) 37 } else if size >= 0 { 38 return int(size) 39 } 40 } 41 return defaultValue 42 }