#!/usr/bin/env python
# -*- coding: utf-8 -*-
from docopt import docopt
from carotte import __version__
from carotte import Worker

__doc__ = """Carotte.

Usage:
    carotte worker [--concurrency=<int>] [--bind=<address>] [--tasks-module=<module>]

Options:
    --concurrency=<int>         Number of processes to run [default: 5]
    --bind=<address>            Address to bind worker on [default: tcp://127.0.0.1:5550]
    --tasks-module=<module>     Module to load tasks from
"""

if __name__ == '__main__':
    args = docopt(__doc__, version=__version__)
    if args.get('worker'):
        worker = Worker(
            bind=args.get('--bind'), concurrency=int(args.get('--concurrency')))
        if args.get('--tasks-module'):
            __import__(args.get('--tasks-module'))
            from carotte import registrar
            for name, task in registrar.items():
                worker.add_task(name, task)
        try:
            worker.run()
        except KeyboardInterrupt:
            worker.stop()
