54 lines
1.1 KiB
Go
54 lines
1.1 KiB
Go
package main
|
|
|
|
import (
|
|
"github.com/joho/godotenv"
|
|
"log"
|
|
"os"
|
|
"strconv"
|
|
)
|
|
|
|
type Config struct {
|
|
host string
|
|
port string
|
|
redisAddr string
|
|
redisUser string
|
|
redisPassword string
|
|
redisDB int
|
|
urlLength int
|
|
}
|
|
|
|
func GetConfig() Config {
|
|
err := godotenv.Load()
|
|
if err != nil {
|
|
log.Fatalf("Error loading .env file: %v", err)
|
|
}
|
|
|
|
port := os.Getenv("PLAKKEN_PORT")
|
|
redisAddr := os.Getenv("PLAKKEN_REDIS_ADDR")
|
|
db := os.Getenv("PLAKKEN_REDIS_DB")
|
|
uLen := os.Getenv("PLAKKEN_REDIS_URL_LEN")
|
|
|
|
if port == "" || redisAddr == "" {
|
|
log.Fatal("Missing or invalid PLAKKEN_PORT or PLAKKEN_REDIS_ADDR")
|
|
}
|
|
|
|
redisDB, err := strconv.Atoi(db)
|
|
if err != nil {
|
|
log.Fatal("Invalid PLAKKEN_REDIS_DB")
|
|
}
|
|
|
|
urlLen, err := strconv.Atoi(uLen)
|
|
if err != nil {
|
|
log.Fatal("Invalid PLAKKEN_REDIS_URL_LEN")
|
|
}
|
|
|
|
return Config{
|
|
host: os.Getenv("PLAKKEN_INTERFACE"),
|
|
port: port,
|
|
redisAddr: redisAddr,
|
|
redisUser: os.Getenv("PLAKKEN_REDIS_USER"),
|
|
redisPassword: os.Getenv("PLAKKEN_REDIS_PASSWORD"),
|
|
redisDB: redisDB,
|
|
urlLength: urlLen,
|
|
}
|
|
}
|