from gevent import monkey, signal_handler as sig
monkey.patch_all()
import bottle
import signal
from gevent.pywsgi import WSGIServer
from geventwebsocket.handler import WebSocketHandler

import config.env as env
import controller.controller as controller

if __name__ == '__main__':  
  app = bottle.app()
  server = WSGIServer(("0.0.0.0", env.port), app, handler_class=WebSocketHandler)
  
  def shutdown():
    print('Shutting down ...')
    server.stop(timeout=60)
    exit(signal.SIGTERM)

  sig(signal.SIGTERM, shutdown)
  sig(signal.SIGINT, shutdown)
  server.serve_forever()