Mercurial > kallithea
view scripts/generate-ini.py @ 8882:81e6b5e62a2c
setup: make chardet a mandatory dependency
It was made mandatory in 9685f50a69d0. At that time it seemed like it always
were present due to indirect dependencies, but apparently that is no longer the
case.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Wed, 12 May 2021 12:01:54 +0200 |
parents | 495dea7c2a13 |
children |
line wrap: on
line source
#!/usr/bin/env python3 """ Generate development.ini based on the ini template. """ 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', 'session.secret': 'development-not-secret', }, '[logger_root]': { 'handlers': 'console_color', }, '[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>##</%text>\1', mako_no_text_markup, flags=re.MULTILINE) if mako_marked_up != mako_org: print('writing:', makofile) open(makofile, 'w').write(mako_marked_up) lines = re.findall(r'\n(# [^ ].*)', mako_marked_up) if lines: print('ERROR: the template .ini file convention is to use "## Foo Bar" for text comments and "#foo = bar" for disabled settings') for line in lines: print(line) raise SystemExit(1) # create ini files for fn, settings in ini_files: print('updating:', fn) inifile.create(fn, None, settings) if __name__ == '__main__': main()