]> git.jsancho.org Git - midgaard_bot.git/blobdiff - midgaard_bot.go
Add telnet file with support to send and receive text from Merc MUD
[midgaard_bot.git] / midgaard_bot.go
index a11ab8af639d019d6993ebaf2d20e44663356e1d..10aab4b06a134f37768ac8a2df5302416de89b72 100644 (file)
@@ -21,16 +21,27 @@ package main
 import (
        "context"
        "log"
+       "os"
+       "os/signal"
 
        "github.com/jessevdk/go-flags"
 )
 
-var config struct {
+type TelegramConfig struct {
        Token string `short:"t" long:"token" description:"Telegram API Token" required:"true"`
 }
 
+type MercConfig struct {
+       Host string `short:"h" long:"host" description:"Host and port for Merc MUD" required:"true"`
+}
+
+var Config struct {
+       Telegram TelegramConfig `group:"Telegram config"`
+       Merc MercConfig `group:"Merc MUD config"`
+}
+
 func main() {
-       _, err := flags.Parse(&config)
+       _, err := flags.Parse(&Config)
        if err != nil {
                log.Panic(err)
        }
@@ -38,20 +49,19 @@ func main() {
        ctx, cancel := context.WithCancel(context.Background())
        defer cancel()
 
-       err = initSessions(ctx)
+       err = initSessions(Config.Merc.Host, ctx)
        if err != nil {
                log.Panic(err)
        }
 
-       err = initTelegramWorkers(config.Token, ctx)
+       err = initTelegramWorkers(Config.Telegram.Token, ctx)
        if err != nil {
                log.Panic(err)
        }
 
-       for {
-               select {
-               case <-ctx.Done():
-                       break
-               }
-       }
+       intChannel := make(chan os.Signal, 1)
+       signal.Notify(intChannel, os.Interrupt)
+       <-intChannel
+
+       log.Print("Exit")
 }