#! /usr/bin/env python
# coding: utf-8
"""
 :copyright: (c) 2012 Philipp Benjamin Köppchen
 :license: GPLv3, see LICENSE for more details.
"""
import os.path
from optparse import OptionParser
from graygoo import Repository, UsageError


option_parser = OptionParser(usage='%prog [TEMPLATENAME] [key=value] ...')


if __name__ == '__main__':
    options, args = option_parser.parse_args()

    if not args:
        option_parser.error('please provide a template name')

    templatename = args[0]

    vars = [pair.split('=', 1) for pair in args[1:]]

    if any(len(pair) != 2 for pair in vars):
        option_parser.error('please provide all template arguments in the form key=value')

    vars = dict(vars)

    repo = Repository()
    repo.add_path(os.path.expanduser('~/.graygoo'))
    repo.add_buildins()

    try:
        template = repo.get_template(templatename)
        template.render('', vars)
    except UsageError, exc:
        option_parser.error(unicode(exc))

