robot-control-manager/modules/config/config.go

64 lines
1.4 KiB
Go

package config
import (
"fmt"
"os"
"github.com/joho/godotenv"
)
var Cfg Config
type Config struct {
Debug bool
ColorizedOutput bool
Host string
Port string
LogManagerServerUrl string
SSEServerEnabled bool
MariaDB MariaDB
}
type MariaDB struct {
Hostname string
Port string
Username string
Password string
DatabaseName string
}
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")
}
config := Config{
Debug: os.Getenv("DEBUG") == "true",
ColorizedOutput: os.Getenv("COLORIZED_OUTPUT") == "true",
LogManagerServerUrl: os.Getenv("LOG_MANAGER_SERVER_URL"),
SSEServerEnabled: os.Getenv("SSE_SERVER_ENABLED") == "true",
MariaDB: MariaDB{
Hostname: os.Getenv("MARIADB_HOSTNAME"),
Port: os.Getenv("MARIADB_PORT"),
Username: os.Getenv("MARIADB_USERNAME"),
Password: os.Getenv("MARIADB_PASSWORD"),
DatabaseName: os.Getenv("MARIADB_DATABASE_NAME"),
},
}
// 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
}