44 lines
894 B
Go
44 lines
894 B
Go
|
// Fantasy World Zookeeper Helper Bot
|
||
|
// Copyright (c) 2018 Vladimir "fat0troll" Hodakov
|
||
|
|
||
|
package main
|
||
|
|
||
|
import (
|
||
|
"lab.wtfteam.pro/fat0troll/fw_zookeeper_helper/context"
|
||
|
"lab.wtfteam.pro/fat0troll/fw_zookeeper_helper/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()
|
||
|
|
||
|
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)
|
||
|
|
||
|
}
|