#!/usr/bin/env python
"""
Runs rump daemon(s), e.g. if you've installed gunicorn:

.. code:: bash

    $ rumpd gunicorn -- -c /etc/rump/gunicorn.conf -w 1 -p 6000

"""
import argparse
import sys
try:
    from gunicorn.app.wsgiapp import run as gunicorn_wsgi_run
except ImportError:
    gunicorn_wsgi_run = None


def gunicorn_parser(commands, parents):
    parser = commands.add_parser('gunicorn', parents=parents)
    parser.add_argument('remainder', nargs=argparse.REMAINDER)
    parser.set_defaults(command=gunicorn_command, app='rump.wsgi:app')


def gunicorn_command(args):
    script = gunicorn_wsgi_run
    script_args = [sys.argv[0], args.app]
    if args.remainder:
        script_args.extend(args.remainder[1:])
    del sys.argv[:]
    sys.argv.extend(script_args)
    return script()


def parser():
    root = argparse.ArgumentParser(add_help=False)
    parser = argparse.ArgumentParser(parents=[root])
    commands = parser.add_subparsers(title='commands')
    if gunicorn_wsgi_run:
        gunicorn_parser(commands, [root])
    return parser


def main():
    args = parser().parse_args()
    args.command(args)


if __name__ == '__main__':
    main()
