Archived
1
This repository has been archived on 2022-11-04. You can view files and clone it, but cannot push or open issues or pull requests.
fwzookeeper/main.go
Vladimir Hodakov 5820a37326
Add LICENSE and first command
This commit may be used as template for making any new Telegram bots.
Just check out it, change your variables and start developing new
shiny bot!

Maybe I need to create bot generator...
2018-11-29 20:51:36 +04:00

49 lines
1.0 KiB
Go

// Fantasy World Zookeeper Bot
// Copyright (c) 2018 Vladimir "fat0troll" Hodakov
package main
import (
"lab.wtfteam.pro/fat0troll/fw_zookeeper/context"
"lab.wtfteam.pro/fat0troll/fw_zookeeper/domains/commands/v1"
"lab.wtfteam.pro/fat0troll/fw_zookeeper/internal/router"
"lab.wtfteam.pro/fat0troll/fw_zookeeper/internal/telegram"
"os"
"os/signal"
"runtime"
"syscall"
)
func main() {
// Before any real work - lock to OS thread. We shouldn't leave it until
// shutdown
runtime.LockOSThread()
// Initializing context
c := context.NewContext()
c.Init()
c.InitConfiguration()
router.New(c)
commandsv1.New(c)
telegram.New(c)
// CTRL+C handler.
interrupt := make(chan os.Signal, 1)
signal.Notify(interrupt)
shutdownDone := make(chan bool, 1)
go func() {
signalThing := <-interrupt
if signalThing == syscall.SIGTERM || signalThing == syscall.SIGINT {
c.Logger.Info().Msg("Got " + signalThing.String() + " signal, shutting down...")
shutdownDone <- true
}
}()
<-shutdownDone
os.Exit(0)
}