package config import ( "fmt" "os" "strings" "github.com/joho/godotenv" ) var DotenvLoaded bool = false // Getenv tries to get an environment variable // and fails if it isn't set func Getenv(key string) string { if !DotenvLoaded { err := godotenv.Load() if err != nil && os.Getenv(key) == "" { panic(fmt.Errorf("environment variable does not exist or is not set: %s", key)) } DotenvLoaded = true } if val := os.Getenv(key); val != "" { return val } panic(fmt.Errorf("environment variable does not exist or is not set: %s", key)) } func GetenvDefault(key string, fallback string) string { if !DotenvLoaded { err := godotenv.Load() if err != nil && os.Getenv(key) == "" { return fallback } DotenvLoaded = true } if val := os.Getenv(key); val != "" { return val } return fallback } func GetenvDefaultLowercase(key string, fallback string) string { return strings.ToLower(GetenvDefault(key, fallback)) } func DebugActive() bool { return strings.ToLower(GetenvDefault("DEBUG", "false")) == "true" }