mirror of https://github.com/Superioz/aqua.git
74 lines
997 B
Go
74 lines
997 B
Go
package env
|
|
|
|
import (
|
|
"os"
|
|
"strconv"
|
|
"strings"
|
|
)
|
|
|
|
func String(name string) (string, bool) {
|
|
return os.LookupEnv(name)
|
|
}
|
|
|
|
func StringOrDefault(name string, def string) string {
|
|
s, ok := String(name)
|
|
if !ok {
|
|
return def
|
|
}
|
|
return s
|
|
}
|
|
|
|
func Int(name string) (int, bool) {
|
|
s, ok := String(name)
|
|
if !ok {
|
|
return 0, false
|
|
}
|
|
|
|
i, err := strconv.Atoi(s)
|
|
if err != nil {
|
|
return 0, false
|
|
}
|
|
return i, true
|
|
}
|
|
|
|
func IntOrDefault(name string, def int) int {
|
|
i, ok := Int(name)
|
|
if !ok {
|
|
return def
|
|
}
|
|
return i
|
|
}
|
|
|
|
func Bool(name string) (bool, bool) {
|
|
s, ok := String(name)
|
|
if !ok {
|
|
return false, false
|
|
}
|
|
|
|
if s == "true" || s == "enabled" {
|
|
return true, true
|
|
}
|
|
return false, true
|
|
}
|
|
|
|
func BoolOrDefault(name string, def bool) bool {
|
|
b, ok := Bool(name)
|
|
if !ok {
|
|
return def
|
|
}
|
|
return b
|
|
}
|
|
|
|
func ListOrDefault(name string, def []string) []string {
|
|
s, ok := String(name)
|
|
if !ok {
|
|
return def
|
|
}
|
|
|
|
spl := strings.Split(s, ",")
|
|
if len(spl) == 0 {
|
|
return def
|
|
}
|
|
return spl
|
|
}
|