package main import ( "flag" "log" "os" "os/signal" "github.com/bwmarrin/discordgo" ) var ( Token = flag.String("token", "", "Bot authentication token") App = flag.String("app", "", "Application ID") Guild = flag.String("guild", "", "Guild ID") // Do we want it to be tied to one server? ) func main() { flag.Parse() if *App == "" { log.Fatal("application id is not set") } err := parseConfigs() if err != nil { log.Fatal(err) } initLogger() err = startBot() if err != nil { log.Fatal(err) } } func startBot() error { session, _ := discordgo.New("Bot " + *Token) err := session.Open() if err != nil { Log.Error("could not open discord session", "type", "error", "error", err) return err } Log.Info("shutting down gracefully", "type", "shutdown") sigch := make(chan os.Signal, 1) signal.Notify(sigch, os.Interrupt) <-sigch Log.Info("shutting down gracefully", "type", "shutdown") err = session.Close() if err != nil { Log.Error("could not close discord session gracefully", "type", "error", "error", err) return err } return nil }