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  }