log-manager/modules/config/config.go

56 lines
1.1 KiB
Go

package config
import (
"fmt"
"log"
"os"
"strconv"
"github.com/joho/godotenv"
)
var Cfg Config
type Config struct {
Debug bool
Host string
Port string
LogFolder string
SSEServerEnabled bool
DaysToKeepLogs int
}
func LoadConfig() {
// used to determine server was startet in docker or not
if os.Getenv("DOCKER") == "" {
fmt.Println("Load env from file")
godotenv.Load(".env")
} else {
fmt.Println("Load env from system")
}
daysToKeepLogs, err := strconv.Atoi(os.Getenv("DAYS_TO_KEEP_LOGS"))
if err != nil {
log.Fatalf("Failed to load DAYS_TO_KEEP_LOGS from env, err: %s", err.Error())
}
config := Config{
Debug: os.Getenv("DEBUG") == "true",
LogFolder: os.Getenv("LOG_FOLDER"),
SSEServerEnabled: os.Getenv("SSE_SERVER_ENABLED") == "true",
DaysToKeepLogs: daysToKeepLogs,
}
// load default values if not in docker
if os.Getenv("DOCKER") == "" {
config.Host = os.Getenv("HOST")
config.Port = os.Getenv("PORT")
} else { // load from docker env
config.Host = "0.0.0.0"
config.Port = "80"
}
Cfg = config
}