sarafu-vise-events/cmd/main.go
lash d1acde4e01
Some checks failed
release / docker (push) Has been cancelled
Correct config override handling
2025-01-24 09:03:13 +00:00

67 lines
1.8 KiB
Go

package main
import (
"context"
"flag"
"fmt"
"os"
"os/signal"
"syscall"
"git.defalsify.org/vise.git/logging"
sarafuconfig "git.grassecon.net/grassrootseconomics/sarafu-vise/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/config"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/event/nats"
"git.grassecon.net/grassrootseconomics/sarafu-vise-events/lookup"
viseevent "git.grassecon.net/grassrootseconomics/sarafu-vise/handlers/event"
"git.grassecon.net/grassrootseconomics/visedriver/storage"
)
var (
logg = logging.NewVanilla()
)
func main() {
config.LoadConfig()
override := sarafuconfig.NewOverride()
flag.StringVar(override.DbConn, "c", "?", "default connection string (replaces all unspecified strings)")
flag.StringVar(override.ResourceConn, "resource", "?", "resource connection string")
flag.StringVar(override.UserConn, "userdata", "?", "userdata store connection string")
flag.StringVar(override.StateConn, "state", "?", "state store connection string")
flag.Parse()
sarafuconfig.Apply(override)
conns, err := sarafuconfig.GetConns()
if err != nil {
fmt.Fprintf(os.Stderr, "conn specification error: %v\n", err)
os.Exit(1)
}
logg.Infof("start command", "conn", conns)
ctx := context.Background()
menuStorageService := storage.NewMenuStorageService(conns)
eu := viseevent.NewEventsUpdater(lookup.Api, menuStorageService)
eh := eu.ToEventsHandler()
n := nats.NewNatsSubscription(eh)
err = n.Connect(ctx, config.JetstreamURL)
if err != nil {
fmt.Fprintf(os.Stderr, "Stream connect err: %v", err)
os.Exit(1)
}
defer n.Close()
cint := make(chan os.Signal)
cterm := make(chan os.Signal)
signal.Notify(cint, os.Interrupt, syscall.SIGINT)
signal.Notify(cterm, os.Interrupt, syscall.SIGTERM)
select {
case _ = <-cint:
case _ = <-cterm:
}
}