Example #1
0
def main():
    try:
        klogger.logger = klogger.get_logger("ketchlip", "webserver.log")

        klogger.info("Starting webserver on port " + str(PORT))

        MyHandler.set_www_root(config.config.www_root)
        index_file, url_lookup_file = config.config.base_dir + "index", config.config.base_dir + "url_lookup"
        SearchSingleton().load(index_file, url_lookup_file)

        file_observer = FileObserver(index_file)
        file_observer.register_listener(SearchSingleton())
        file_observer.start_observe()

        server = HTTPServer(('', PORT), MyHandler)
        klogger.info("HTTP server ready to serve on port " + str(PORT))
        server.serve_forever()
    except KeyboardInterrupt:
        klogger.info('^C received, shutting down server')
        if file_observer:
            file_observer.unregister_listener(SearchSingleton())
            file_observer.stop_observe()
        if server:
            server.socket.close()
    except Exception, e:
        klogger.exception(e)