X-Git-Url: https://git.jsancho.org/?p=midgaard_bot.git;a=blobdiff_plain;f=midgaard_bot.go;h=10aab4b06a134f37768ac8a2df5302416de89b72;hp=a11ab8af639d019d6993ebaf2d20e44663356e1d;hb=HEAD;hpb=afe75f075ad32184cb03cdc0c3d6a1d35e518b1c diff --git a/midgaard_bot.go b/midgaard_bot.go index a11ab8a..10aab4b 100644 --- a/midgaard_bot.go +++ b/midgaard_bot.go @@ -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") }