#!/bin/sh -e
# this a self-bootstrapping script, it will create a virtualenv and install jinja2 in it
bogus=''' '
if [ ! -e .tox/configure ]; then
    virtualenv .tox/configure
    .tox/configure/bin/pip install jinja2 matrix
fi
.tox/configure/bin/python $0 $*
exit
'''

import jinja2
import matrix
jinja = jinja2.Environment(
    loader=jinja2.FileSystemLoader('.'),
    trim_blocks=True,
    lstrip_blocks=True,
    keep_trailing_newline=True
)
tox_environments = {}
for alias, conf in matrix.from_file('setup.cfg').items():
    python = conf['python_versions']
    deps = conf['dependencies']
    cover = {'false': False, 'true': True}[conf['coverage_flags'].lower()]
    env_vars = conf['environment_variables']

    tox_environments[alias] = {
        'python': 'python' + python if 'py' not in python else python,
        'deps': deps.split(),
        'cover': cover,
        'env_vars': env_vars.split(),
    }

with open('tox.ini', 'w') as fh:
    fh.write(jinja.get_template('tox.tmpl.ini').render(tox_environments=tox_environments))

with open('.travis.yml', 'w') as fh:
    fh.write(jinja.get_template('.travis.tmpl.yml').render(tox_environments=tox_environments))

print("DONE.")
