Files @ 69f70de15f26
Branch filter:

Location: kallithea/scripts/generate-ini.py

Thomas De Schampheleire
scripts: add developer script validate-commits

validate-commits can be used to verify a series of commits before
submitting/pushing it. It will create a virtualenv and run run-all-cleanup
and pytest.

Invocation:
validate-commits <revset>

Output:
OK: 99c28d4459286261f7e798ab3fe60be3b0be2e7e (run-all-cleanup)
OK: 99c28d4459286261f7e798ab3fe60be3b0be2e7e (pytest)
OK: 8a79857fb430eea80556af8d7e7c88810eee7f25 (run-all-cleanup)
NOK: 8a79857fb430eea80556af8d7e7c88810eee7f25 (pytest)
OK: 42d4c56ad79c4a492b8bc607aa070de32d9c6073 (run-all-cleanup)
NOK: 42d4c56ad79c4a492b8bc607aa070de32d9c6073 (pytest)
#!/usr/bin/env python2
"""
Based on kallithea/lib/paster_commands/template.ini.mako, generate development.ini
"""

import re

from kallithea.lib import inifile

# files to be generated from the mako template
ini_files = [
    ('development.ini',
        {
            '[server:main]': {
                'host': '0.0.0.0',
            },
            '[app:main]': {
                'debug': 'true',
                'app_instance_uuid': 'development-not-secret',
                'beaker.session.secret': 'development-not-secret',
            },
            '[handler_console]': {
                'formatter': 'color_formatter',
            },
            '[handler_console_sql]': {
                'formatter': 'color_formatter_sql',
            },
            '[logger_routes]': {
                'level': 'DEBUG',
            },
            '[logger_beaker]': {
                'level': 'DEBUG',
            },
            '[logger_templates]': {
                'level': 'INFO',
            },
            '[logger_kallithea]': {
                'level': 'DEBUG',
            },
            '[logger_tg]': {
                'level': 'DEBUG',
            },
            '[logger_gearbox]': {
                'level': 'DEBUG',
            },
            '[logger_whoosh_indexer]': {
                'level': 'DEBUG',
            },
        },
    ),
]


def main():
    # make sure all mako lines starting with '#' (the '##' comments) are marked up as <text>
    makofile = inifile.template_file
    print 'reading:', makofile
    mako_org = open(makofile).read()
    mako_no_text_markup = re.sub(r'</?%text>', '', mako_org)
    mako_marked_up = re.sub(r'\n(##.*)', r'\n<%text>\1</%text>', mako_no_text_markup, flags=re.MULTILINE)
    if mako_marked_up != mako_org:
        print 'writing:', makofile
        open(makofile, 'w').write(mako_marked_up)

    # create ini files
    for fn, settings in ini_files:
        print 'updating:', fn
        inifile.create(fn, None, settings)


if __name__ == '__main__':
    main()