#!/usr/bin/python
try:
    import argparse
except ImportError:
    raise "Python-2.7 is required to run this script"

from djangobase.generator import (GenerateProject, DESTINATION, CONFIG,
    __version__)


if __name__ == "__main__":
    usage = "Django-base project creator. %s " % __version__
    parser = argparse.ArgumentParser(description=usage, prog="Django Base")

    parser.add_argument(dest="project", nargs='?',
        help="project name. default: example")

    parser.add_argument("--hostname", dest="hostname",
        default="localhost", type=str, help="hostname, default: localhost")

    parser.add_argument("--port", dest="port", type=int, default=80,
       help="port, default: 80")

    dest_str = "Destination folder, default: %s" % DESTINATION
    parser.add_argument("--dest", dest="dest", type=str,
        default=DESTINATION,
        help=dest_str)

    parser.add_argument("--path", dest="path",
        type=str, default="/usr/local/projects",
        help="production server path.")

    parser.add_argument("--database", dest="database",
        type=str, default="postgresql_psycopg2",
        help="database engine, choices: postgresql_psycopg2, "
             "postgresql, mysql, sqlite3 or oracle, "
             "default: postgresql_psycopg2")

    parser.add_argument("--config", dest="config",
        type=int, default=3,
        help=CONFIG)

    parser.add_argument("--django-version", dest="version",
        type=float, default=1.4, help="Django version to use. default: 1.4")

    parser.add_argument("--template", dest="template", type=str,
        default=None, help="custom template directory")

    parser.add_argument("-w", "--wizard", dest="wizard", action='store_true',
        help="step-by-step wizard.")

    parser.add_argument("-v", "--verbose", dest="verbose",
        action='store_true', help="display verbosity")
    
    version_str = '%(prog)s ' + __version__ 
    parser.add_argument('--version', action='version', version=version_str)

    arguments = parser.parse_args()
    project_generator = GenerateProject(**arguments.__dict__)
    project_generator.create()
