bingobot/main.go

62 lines
941 B
Go
Raw Normal View History

2024-11-06 11:34:45 -08:00
package main
import (
"flag"
"log"
"os"
"os/signal"
"gitlab.com/whom/bingobot/internal/config"
"gitlab.com/whom/bingobot/internal/discord"
"gitlab.com/whom/bingobot/internal/logging"
"gitlab.com/whom/bingobot/internal/state"
2024-11-06 11:34:45 -08:00
)
var (
token = flag.String("token", "", "Bot authentication token")
2024-11-06 11:34:45 -08:00
)
func main() {
flag.Parse()
var err error
err = config.Init()
2024-11-06 13:32:37 -08:00
if err != nil {
log.Fatal(err)
}
logging.Init()
2024-11-06 14:19:45 -08:00
if err := state.Init(
config.Get().InMemoryEventCacheSize,
config.Get().PersistentCacheStore,
); err != nil {
log.Fatalf("couldn't initialize state engine: %s", err.Error())
}
2024-11-06 14:19:45 -08:00
err = startBot()
if err != nil {
log.Fatal(err)
}
2024-11-06 11:34:45 -08:00
}
2024-11-06 14:19:45 -08:00
func startBot() error {
err := discord.Connect(*token)
2024-11-06 11:34:45 -08:00
if err != nil {
2024-11-06 14:19:45 -08:00
return err
2024-11-06 11:34:45 -08:00
}
sigch := make(chan os.Signal, 1)
signal.Notify(sigch, os.Interrupt)
<-sigch
logging.Info("shutting down gracefully", "type", "shutdown")
discord.Close()
2024-11-06 14:19:45 -08:00
return nil
2024-11-06 11:34:45 -08:00
}