datawriter/cmd/shell/main.go

45 lines
884 B
Go

package main
import (
"context"
"fmt"
"os"
"os/signal"
"sync"
"syscall"
"gittea.marcokittel.de/elio/eliotools/datawriter/internal/database"
"gittea.marcokittel.de/elio/eliotools/datawriter/internal/dataservice"
)
const (
NewDir = "/new"
ProcessedDir = "/processed"
Rights = 0755
StockMustHaveFileLen = 38
)
func main() {
connectionstr := os.Getenv("CONNECTIONSTRING")
if len(connectionstr) == 0 {
fmt.Println("Connectionstring fehlt!. Bsp.: <user>:<passwort>@tcp(127.0.0.1:3306)/elio?parseTime=true")
return
}
ctx, cancel := signal.NotifyContext(
context.Background(),
os.Interrupt,
syscall.SIGTERM,
)
defer cancel()
var wg sync.WaitGroup
db := database.NewDatabaseWriter(ctx, connectionstr)
ds := dataservice.NewDataService(ctx)
ds.AddListener(db)
wg.Add(ds.ListenerCount())
ds.Run(ctx, &wg)
wg.Wait()
}