//go:build cgo package main import ( "C" "os" "git.coopgo.io/coopgo-platform/multimodal-routing/handlers" grpcserver "git.coopgo.io/coopgo-platform/multimodal-routing/servers/grpc/server" "github.com/rs/zerolog" "github.com/rs/zerolog/log" ) func main() { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) cfg, err := ReadConfig() if err != nil { log.Error().Err(err).Msg("issue reading config file") } var ( service_name = cfg.GetString("name") dev_env = cfg.GetBool("dev_env") grpc_enable = cfg.GetBool("services.grpc.enable") ) if dev_env { log.Logger = log.Output(zerolog.ConsoleWriter{Out: os.Stderr}) } handler, err := handlers.NewMultimodalRoutingHandler(cfg.Sub("modes")) if err != nil { log.Fatal().Err(err).Msg("error creating handlers") return } log.Info().Str("service_name", service_name).Msg("Running service") failed := make(chan error) if grpc_enable { grpcserver.Run(failed, cfg, handler) } err = <-failed log.Fatal().Err(err).Str("service_name", service_name).Msg("Terminating service") }