#!/usr/bin/env python
# -*- coding: utf-8 -*-
import os
import sys
from docopt import docopt
from carotte import __version__
from importlib import import_module

__doc__ = """Carotte.

Usage:
    carotte worker [--concurrency=<int>] [--bind=<address>] [--app=<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]
    -A, --app=<module>              App module to load [default: app:app]
"""

if __name__ == '__main__':
    args = docopt(__doc__, version=__version__)
    if args.get('worker'):
        sys.path.append(os.getcwd())
        module_name = args.get('--app').split(':')[0]
        app_name = args.get('--app').split(':')[-1]
        module = import_module(module_name)
        app = getattr(module, app_name)
        try:
            app.run_worker(
                bind=args.get('--bind'),
                concurrency=int(args.get('--concurrency')))
        except KeyboardInterrupt:
            app.worker.stop()
