#! /usr/bin/env python

from optparse import OptionParser
import logging
import sys
import signal
import tornado.ioloop
import elephunk.application

parser = OptionParser(description = "Elephunk. Postgres Investigator")
parser.add_option('-c', '--config', metavar='FILE', default='/etc/elephunk.yml')
parser.add_option('-p', '--port', metavar='PORT', default=8888)
parser.add_option('-d', '--debug', action='store_true', default=False)

(options, _) = parser.parse_args()

application = elephunk.application.create(port=options.port, debug=options.debug, config_file=options.config)
logging.basicConfig(stream=sys.stderr, level=logging.INFO)

def handle_interrupt(signal, frame):
    logging.info("Stopping server...")
    tornado.ioloop.IOLoop.instance().stop()
    sys.exit(0)

signal.signal(signal.SIGINT, handle_interrupt)

logging.info("Starting application on port %s" % options.port)
if options.debug:
    logging.info("* debug mode, files will reload as they are changed")

tornado.ioloop.IOLoop.instance().start()
