#!/usr/bin/python
#-*- coding: utf-8 -*-

import argparse
import os
import sys
from waltz import setup

mainpy = """#!/usr/bin/python
#-*- coding: utf-8 -*-

\"\"\"
    main.py
    ~~~~~~~

    Main waltz application.

    :copyright: (c) __ by __.
    :license: __ , see LICENSE for more details.
\"\"\"

import waltz

urls = ('/analytics/?', 'waltz.modules.Analytics',
        '/?', 'routes.home.Index')

sessions = {}
env = {}
app = waltz.setup.dancefloor(urls, globals(), sessions=sessions, env=env)

if __name__ == "__main__":
    app.run()
"""

homepy = """#-*- coding: utf-8 -*-

\"\"\"
    routes.home
    ~~~~~~~~~~~

    Routes related to the homepage.

    :copyright: (c) __ by __.
    :license: __ , see LICENSE for more details.
\"\"\"

import waltz
from waltz import track, render

class Index:
    @track
    def GET(self):
        return render().index()
"""

def argparser():
    parser = argparse.ArgumentParser(description="Waltz is a web.py framework " \
                                         "for designing web apps in 3/4 time")
    parser.add_argument('init', nargs='?', metavar='init',
                        help="Start a waltz application")
    parser.add_argument('--name', dest='name', default="main.py",
                        help='Specify a name ')
    return parser


if __name__ == "__main__":
    parser = argparser()
    args = parser.parse_args()

    if not args.init:
        parser.print_help()
        sys.exit()

    if args.init:
        name = "main.py"
        if args.name:      
            name = args.name
        if not ".py" in name:
            name = name + ".py"

    setup.init_scaffolding(os.getcwd())
    with open("%s/%s" % (os.getcwd(), name), 'w') as f:
        f.write(mainpy)
    with open("%s/routes/home.py" % os.getcwd(), 'w') as f:
        f.write(homepy)
