Skip to content
Snippets Groups Projects
main.go 818 B
Newer Older
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
	}