2026-02-18 15:53:29 +03:00
|
|
|
package config
|
|
|
|
|
|
2026-02-18 19:58:09 +03:00
|
|
|
import (
|
|
|
|
|
log "github.com/sirupsen/logrus"
|
|
|
|
|
"os"
|
|
|
|
|
"strconv"
|
|
|
|
|
"time"
|
|
|
|
|
)
|
2026-02-18 15:53:29 +03:00
|
|
|
|
|
|
|
|
func getEnv(key, fallback string) string {
|
|
|
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
|
|
|
return value
|
|
|
|
|
}
|
|
|
|
|
return fallback
|
|
|
|
|
}
|
2026-02-18 19:58:09 +03:00
|
|
|
|
|
|
|
|
func getEnvSeconds(key string, fallback int) time.Duration {
|
|
|
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
|
|
|
num, err := strconv.Atoi(value)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Printf("Error converting %v to int, using default value - 60 seconds", key)
|
|
|
|
|
return time.Duration(60) * time.Second
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return time.Duration(num) * time.Second
|
|
|
|
|
}
|
|
|
|
|
return time.Duration(fallback) * time.Second
|
|
|
|
|
}
|
2026-02-21 16:58:20 +03:00
|
|
|
|
|
|
|
|
func getEnvUint(key string, fallback uint) uint {
|
|
|
|
|
var def uint = 100
|
|
|
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
|
|
|
num, err := strconv.ParseUint(value, 10, 64)
|
|
|
|
|
if err != nil {
|
|
|
|
|
log.Printf("Error converting %v to uint, using default value - %v", key, def)
|
|
|
|
|
return def
|
|
|
|
|
}
|
|
|
|
|
return uint(num)
|
|
|
|
|
}
|
|
|
|
|
return fallback
|
|
|
|
|
}
|
2026-04-03 11:45:22 +03:00
|
|
|
|
|
|
|
|
func getEnvPort(key string, fallback uint16) uint16 {
|
|
|
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
|
|
|
num, err := strconv.ParseUint(value, 10, 16)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fallback
|
|
|
|
|
}
|
|
|
|
|
return uint16(num)
|
|
|
|
|
}
|
|
|
|
|
return fallback
|
|
|
|
|
}
|
2026-04-08 12:15:24 +03:00
|
|
|
|
|
|
|
|
func getEnvBool(key string, fallback bool) bool {
|
|
|
|
|
if value, ok := os.LookupEnv(key); ok {
|
|
|
|
|
val, err := strconv.ParseBool(value)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return fallback
|
|
|
|
|
}
|
|
|
|
|
return val
|
|
|
|
|
}
|
|
|
|
|
return fallback
|
|
|
|
|
}
|