package main import ( "os" "time" _ "github.com/joho/godotenv/autoload" "jonasled.dev/jonasled/ems-esp-logger/database" "jonasled.dev/jonasled/ems-esp-logger/log" "jonasled.dev/jonasled/ems-esp-logger/messageworker" "jonasled.dev/jonasled/ems-esp-logger/mqttclient" "jonasled.dev/jonasled/ems-esp-logger/mqttserver" "jonasled.dev/jonasled/ems-esp-logger/queue" "jonasled.dev/jonasled/ems-esp-logger/server" ) func main() { log.Init() queue.Init() if os.Getenv("OUTPUT_DATABSE") != "" { database.Init() database.CreateInstance() } if os.Getenv("MQTT_SERVER_ENABLED") == "true" { log.Log.Info("Starting embedded MQTT server") mqttserver.Start() } if os.Getenv("LOGGER_CLIENT") != "false" && os.Getenv("LOGGER_SERVER") != "true" { mqttclient.Init() go messageworker.RunClient() for { time.Sleep(time.Second) // reduce CPU usage by adding a short sleep here instead of a empty for loop } } if os.Getenv("LOGGER_SERVER") == "true" { server.Init() go messageworker.RunServer() server.Run() } else { log.Log.Fatal("Either LOGGER_CLIENT or LOGGER_SERVER has to be enabled in config") } }