Skip to content
Snippets Groups Projects
main.go 818 B
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"
    
    	"jonasled.dev/jonasled/ems-esp-logger/zeromq"
    
    Jonas Leder's avatar
    Jonas Leder committed
    )
    
    func main() {
    
    Jonas Leder's avatar
    Jonas Leder committed
    	log.Init()
    
    
    	zeromq.Init()
    
    	defer zeromq.Pusher.Close()
    
    	if os.Getenv("OUTPUT_DATABSE") != "" {
    		database.Init()
    		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()
    	}
    
    Jonas Leder's avatar
    Jonas Leder committed
    	mqttclient.Init()
    
    	go messageworker.Run()
    
    Jonas Leder's avatar
    Jonas Leder committed
    	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
    	}