#!/usr/bin/python
import sys
import argparse

from cookiejar.jar import Jar
from cookiejar.settings import DEFAULTS
from cookiejar.utils import StoreInDict


def parse_args():
    usage = """"""
    parser = argparse.ArgumentParser(usage=usage)
    subparsers = parser.add_subparsers(help='sub-command help')

    parser_create = subparsers.add_parser('create', help='create a new package from a template.')
    parser_create.set_defaults(action='create')
    parser_create.add_argument("template_name")
    parser_create.add_argument("context", nargs=argparse.REMAINDER, action=StoreInDict, default={})

    parser_search = subparsers.add_parser('search', help='search for a template on the index.')
    parser_search.set_defaults(action='search')
    parser_search.add_argument("text")
    parser_search.add_argument("-i", "--index", dest="index",
                    help="", default=DEFAULTS['index'])

    parser_add = subparsers.add_parser('add', help='a help')
    parser_add.set_defaults(action='add')
    parser_add.add_argument("template_name")
    parser_add.add_argument("url", nargs='?')
    parser_add.add_argument("-i", "--index", dest="index",
                    help="", default=DEFAULTS['index'])

    parser_remove = subparsers.add_parser('remove', help='a help')
    parser_remove.set_defaults(action='remove')
    parser_remove.add_argument("template_name")

    parser_installed = subparsers.add_parser('installed', help='a help')
    parser_installed.set_defaults(action='installed')

    parser_list = subparsers.add_parser('list', help='a help')
    parser_list.set_defaults(action='list')
    parser_list.add_argument("-i", "--index", dest="index",
                    help="", default=DEFAULTS['index'])

    namespace = parser.parse_args()
    kwargs = vars(namespace)
    action = kwargs.pop('action')
    return action, kwargs


if __name__ == "__main__":
    action, options = parse_args()

    jar = Jar()
    jar.run(action, **options)
    sys.exit(0)
