qbtrade/pkg/util/envvars.go

64 lines
1.1 KiB
Go
Raw Normal View History

2024-06-27 14:42:38 +00:00
package util
import (
"os"
"strconv"
"time"
"github.com/sirupsen/logrus"
)
func GetEnvVarDuration(n string) (time.Duration, bool) {
str, ok := os.LookupEnv(n)
if !ok {
return 0, false
}
du, err := time.ParseDuration(str)
if err != nil {
logrus.WithError(err).Errorf("can not parse env var %q as time.Duration, incorrect format", str)
return 0, false
}
return du, true
}
func GetEnvVarInt(n string) (int, bool) {
str, ok := os.LookupEnv(n)
if !ok {
return 0, false
}
num, err := strconv.Atoi(str)
if err != nil {
logrus.WithError(err).Errorf("can not parse env var %q as int, incorrect format", str)
return 0, false
}
return num, true
}
func SetEnvVarBool(n string, v *bool) bool {
b, ok := GetEnvVarBool(n)
if ok {
*v = b
}
return ok
}
func GetEnvVarBool(n string) (bool, bool) {
str, ok := os.LookupEnv(n)
if !ok {
return false, false
}
num, err := strconv.ParseBool(str)
if err != nil {
logrus.WithError(err).Errorf("can not parse env var %q as bool, incorrect format", str)
return false, false
}
return num, true
}