package main import ( "flag" "fmt" "log" "os" "os/signal" "syscall" "git.loafle.net/commons_go/config" "git.loafle.net/commons_go/logging" "git.loafle.net/overflow/overflow_gateway_app/conf" "git.loafle.net/overflow/overflow_gateway_app/external" "git.loafle.net/overflow/overflow_gateway_app/server" ) func init() { configPath := flag.String("config", "./", "The path of config file") flag.Parse() config.SetConfigPath(*configPath) if err := config.Load(&conf.Config, "config.json"); nil != err { panic(err) } } func main() { defer logging.Logger().Sync() external.ExternalInit() s := server.New() stop := make(chan os.Signal) signal.Notify(stop, syscall.SIGINT) go func() { if err := s.Start(); nil != err { log.Printf("Server: Start error %v", err) return } }() select { case signal := <-stop: fmt.Printf("Got signal: %v\n", signal) } external.ExternalDestroy() s.Stop() }