54 lines
1.0 KiB
Go
54 lines
1.0 KiB
Go
package main
|
|
|
|
import (
|
|
"dislate/internals/discord"
|
|
"dislate/internals/guilddb"
|
|
"dislate/internals/translator"
|
|
"log"
|
|
"os"
|
|
"os/signal"
|
|
"syscall"
|
|
)
|
|
|
|
func main() {
|
|
log.Printf("Hello, world")
|
|
|
|
db, err := guilddb.NewSQLiteDB("file:./guild.db")
|
|
if err != nil {
|
|
log.Printf("ERROR: failed to open database %s", err)
|
|
return
|
|
}
|
|
defer func() {
|
|
err := db.Close()
|
|
if err != nil {
|
|
log.Printf("ERROR: failed to close database %s", err)
|
|
return
|
|
}
|
|
}()
|
|
|
|
if err := db.Prepare(); err != nil {
|
|
log.Printf("ERROR: failed to prepare database: %s", err)
|
|
return
|
|
}
|
|
|
|
bot, err := discord.NewBot(os.Getenv(""), db, translator.NewMockTranslator())
|
|
if err != nil {
|
|
log.Printf("ERROR: failed to create discord bot: %s", err)
|
|
return
|
|
}
|
|
if err := bot.Start(); err != nil {
|
|
log.Printf("ERROR: failed to start discord bot: %s", err)
|
|
return
|
|
}
|
|
defer func() {
|
|
if err := bot.Stop(); err != nil {
|
|
log.Printf("ERROR: failed to stop discord bot: %s", err)
|
|
return
|
|
}
|
|
}()
|
|
|
|
sig := make(chan os.Signal, 1)
|
|
signal.Notify(sig, os.Interrupt, syscall.SIGINT)
|
|
<-sig
|
|
}
|