This repository has been archived on 2025-07-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
analytics/ingest/main.go
2023-04-05 14:24:23 +01:00

47 lines
747 B
Go

package main
import (
"github.com/codemicro/analytics/ingest/config"
"github.com/codemicro/analytics/ingest/db"
"github.com/codemicro/analytics/ingest/ingest"
"github.com/rs/zerolog/log"
"os"
"os/signal"
"syscall"
)
func main() {
if err := run(); err != nil {
log.Fatal().Err(err).Msg("unhandled error")
}
}
func run() error {
conf, err := config.Load()
if err != nil {
return err
}
database, err := db.New(conf)
if err != nil {
return err
}
ig, err := ingest.Start(conf, database)
if err != nil {
return err
}
waitForSignal(syscall.SIGINT)
log.Info().Msg("terminating")
_ = ig.Stop()
return nil
}
func waitForSignal(sig syscall.Signal) {
cchan := make(chan os.Signal)
signal.Notify(cchan, sig)
<-cchan
}