Skip to content
Snippets Groups Projects
main.go 1.2 KiB
Newer Older
  • Learn to ignore specific revisions
  • Jonas Leder's avatar
    Jonas Leder committed
    package main
    
    import (
    	"os"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"time"
    
    Jonas Leder's avatar
    Jonas Leder committed
    
    	_ "github.com/joho/godotenv/autoload"
    
    	"jonasled.dev/jonasled/ems-esp-logger/database"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"jonasled.dev/jonasled/ems-esp-logger/log"
    
    	"jonasled.dev/jonasled/ems-esp-logger/messageworker"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"jonasled.dev/jonasled/ems-esp-logger/mqttclient"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"jonasled.dev/jonasled/ems-esp-logger/mqttserver"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"jonasled.dev/jonasled/ems-esp-logger/queue"
    
    Jonas Leder's avatar
    Jonas Leder committed
    	"jonasled.dev/jonasled/ems-esp-logger/server"
    
    Jonas Leder's avatar
    Jonas Leder committed
    )
    
    func main() {
    
    Jonas Leder's avatar
    Jonas Leder committed
    	log.Init()
    
    Jonas Leder's avatar
    Jonas Leder committed
    	queue.Init()
    
    	if os.Getenv("OUTPUT_DATABSE") != "" && os.Getenv("CLIENT_USE_SERVER") != "true" {
    
    		if os.Getenv("LOGGER_SERVER") != "true" {
    			database.CreateInstance()
    		}
    
    Jonas Leder's avatar
    Jonas Leder committed
    	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
    		}
    
    Jonas Leder's avatar
    Jonas Leder committed
    	}
    
    Jonas Leder's avatar
    Jonas Leder committed
    	if os.Getenv("LOGGER_SERVER") == "true" {
    		server.Init()
    
    		go messageworker.RunServer()
    
    Jonas Leder's avatar
    Jonas Leder committed
    		server.Run()
    	} else {
    		log.Log.Fatal("Either LOGGER_CLIENT or LOGGER_SERVER has to be enabled in config")
    	}