62 lines
1.5 KiB
Go
62 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"git.timovolkmann.de/gyrogpsc/core"
|
|
"git.timovolkmann.de/gyrogpsc/storage"
|
|
"git.timovolkmann.de/gyrogpsc/web"
|
|
"github.com/google/uuid"
|
|
"github.com/sirupsen/logrus"
|
|
"github.com/spf13/viper"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
conf := configurationFromFile()
|
|
|
|
logrus.Debug(conf)
|
|
|
|
repo := storage.NewRepository(conf)
|
|
disp := core.NewDispatcher()
|
|
|
|
service := core.TrackingService(conf, repo, disp)
|
|
|
|
go func() {
|
|
service.LoadTracking(uuid.MustParse("06b05aa3-6a13-4ffb-8ac7-cd35dfc0f949"))
|
|
time.Sleep(120 * time.Second)
|
|
|
|
//pprof.StopCPUProfile()
|
|
//os.Exit(0)
|
|
}()
|
|
|
|
web.CreateServer(service, disp, conf)
|
|
}
|
|
|
|
func configurationFromFile() *core.Configuration {
|
|
viper.SetDefault("collectors.porttcp", ":3010")
|
|
viper.SetDefault("collectors.portserial", "/dev/tty.usbmodem14201")
|
|
viper.SetDefault("webserver.port", ":3011")
|
|
viper.SetDefault("pipeline.publishIntervalMs", 50)
|
|
viper.SetDefault("pipeline.syncUpdateIntervalMs", 494)
|
|
viper.SetDefault("debuglevel", "INFO")
|
|
|
|
viper.SetConfigName("gpsconfig") // name of config file (without extension)
|
|
viper.SetConfigType("yaml")
|
|
viper.AddConfigPath(".")
|
|
viper.AddConfigPath("./../../")
|
|
if err := viper.ReadInConfig(); err != nil {
|
|
logrus.Warn("couldn't find config file. using standard configuration")
|
|
}
|
|
|
|
c := core.Configuration{}
|
|
if err := viper.Unmarshal(&c); err != nil {
|
|
logrus.Debug("couldn't load config...")
|
|
logrus.Error(err)
|
|
}
|
|
lvl, err := logrus.ParseLevel(c.Debuglevel)
|
|
if err != nil {
|
|
logrus.Error(err)
|
|
}
|
|
logrus.SetLevel(lvl)
|
|
return &c
|
|
}
|