/*
* Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com>
*
* This file is licensed under GPL-3.0-or-later, see NOTICE and LICENSE for
* more information.
*/
package util
import (
"log"
"os"
"strconv"
)
func LoadEnvStr(key string, def string) string {
value, found := os.LookupEnv(key)
if found {
return value
}
if def == "" {
log.Fatalf("[erya] Environment variable %s is empty, and has no default", key)
} else {
log.Printf("[erya] Environment variable %s is empty, using default '%s'", key, def)
}
return def
}
func LoadEnvInt32(key string, def int32) int32 {
value, found := os.LookupEnv(key)
if found {
res, err := strconv.ParseInt(value, 10, 32)
if err != nil {
log.Fatalf("[erya] Environment variable %s failed to parse to int32 from '%s'", key, value)
}
return int32(res)
}
log.Printf("[erya] Environment variable %s is empty, using default '%d'", key, def)
return def
}
func LoadEnvBool(key string, def bool) bool {
value, found := os.LookupEnv(key)
if found {
res, err := strconv.ParseBool(value)
if err != nil {
log.Fatalf("[erya] Environment variable %s failed to parse to bool from '%s'", key, value)
}
return res
}
log.Printf("[erya] Environment variable %s is empty, using default '%t'", key, def)
return def
}