Esempio n. 1
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', '--config', default=default.GEOFFREY_RC_FILE)
    parser.add_argument('path', nargs='+')
    args = parser.parse_args()
    config = Config(args.config, create=True)

    main = config['geoffrey']
    host = main.get('host', default.HOST)
    websocket_port = main.get('websocket_port', default.WEBSOCKET_PORT)
    webserver_port = main.get('webserver_port', default.WEBSERVER_PORT)

    loop = asyncio.get_event_loop()

    em = EventManager()
    plugins = get_plugins(config, output_queue)
    for subscriptions in plugins.call('get_subscriptions'):
        em.add_subscriptions(subscriptions)

    mask = em.get_mask()

    asyncio.Task(websockets.serve(websocket_server, host, websocket_port))
    asyncio.Task(watch_files(args.path, mask=mask))
    asyncio.Task(em.consume_events(event_queue, output_queue))
    webapp.run()
    loop.run_forever()
Esempio n. 2
0
def main():
    parser = argparse.ArgumentParser()
    parser.add_argument('-c', '--config', default=default.GEOFFREY_RC_FILE)
    parser.add_argument('path', nargs='+')
    args = parser.parse_args()
    config = Config(args.config, create=True)

    main = config['geoffrey']
    host = main.get('host', default.HOST)
    websocket_port = main.get('websocket_port', default.WEBSOCKET_PORT)
    webserver_port = main.get('webserver_port', default.WEBSERVER_PORT)

    loop = asyncio.get_event_loop()

    em = EventManager()
    plugins = get_plugins(config, output_queue)
    for subscriptions in plugins.call('get_subscriptions'):
        em.add_subscriptions(subscriptions)

    mask = em.get_mask()

    asyncio.Task(websockets.serve(websocket_server, host, websocket_port))
    asyncio.Task(watch_files(args.path, mask=mask))
    asyncio.Task(em.consume_events(event_queue, output_queue))
    webapp.run()
    loop.run_forever()
Esempio n. 3
0
        for event_name, event_id in EVENTS.items():
            file_exps = self.config.getlist(self.section_name, event_name)
            if file_exps:
                for file_exp in file_exps:
                    subscriptions.append(
                        Subscription(who=self, event=event_id, what=file_exp))
        return subscriptions

    @asyncio.coroutine
    def run(self, filename):
        raise NotImplementedError


def get_plugins(*args, **kwargs):
    all_plugins = load('geoffrey.plugins',
                       subclasses=GeoffreyPlugin).produce(*args, **kwargs)
    return PluginManager(list(filter(lambda p: p.is_enabled(), all_plugins)))

if __name__ == '__main__':
    from geoffrey import config
    c = config.Config('/home/nil/.geoffreyrc', create=True)
    p = get_plugins(c)

    from geoffrey import config
    c = config.Config('/home/nil/.geoffreyrc', create=True)

    from geoffrey.plugin import get_plugins
    p = get_plugins(c)
    p.call('is_enabled')
    list(p.call('get_subscriptions'))