Files
@ f9b5deab451e
Branch filter:
Location: kallithea/scripts/generate-ini.py - annotation
f9b5deab451e
3.0 KiB
text/x-python
ini: add support for adding extra entries to sections
When adding entries to an existing section, assume that comments and empty
lines *before* a section header belongs to that section. That is an
approximation; not always entirely correct, but the best we can come up with.
When adding entries to an existing section, assume that comments and empty
lines *before* a section header belongs to that section. That is an
approximation; not always entirely correct, but the best we can come up with.
06d5c043e989 06d5c043e989 213085032127 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 e3cce237d77c e3cce237d77c 213085032127 06d5c043e989 06d5c043e989 06d5c043e989 73934760f601 73934760f601 06d5c043e989 06d5c043e989 7292c5976752 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 b1fc5a98952c b1fc5a98952c 06d5c043e989 b1fc5a98952c b1fc5a98952c b1fc5a98952c b1fc5a98952c b1fc5a98952c b1fc5a98952c 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 fc6b1b0e1096 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 fc6b1b0e1096 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 665dfa112f2c 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 665dfa112f2c 06d5c043e989 06d5c043e989 06d5c043e989 06d5c043e989 73934760f601 665dfa112f2c 06d5c043e989 06d5c043e989 06d5c043e989 | #!/usr/bin/env python2
"""
Based on kallithea/lib/paster_commands/template.ini.mako, generate
development.ini
kallithea/tests/test.ini
"""
import re
from kallithea.lib import inifile
makofile = 'kallithea/lib/paster_commands/template.ini.mako'
# the mako variables used in all other ini files and templates
mako_variable_values = {
'database_engine': 'sqlite',
'http_server': 'waitress',
'host': '127.0.0.1',
'port': '5000',
'uuid': lambda: 'VERY-SECRET',
}
# files to be generated from the mako template
ini_files = [
('kallithea/tests/test.ini',
'''
Kallithea - config for tests:
sqlalchemy and kallithea_test.sqlite
custom logging
''',
{
'[server:main]': {
'port': '4999',
},
'[app:main]': {
'app_instance_uuid': 'test',
'show_revision_number': 'true',
'beaker.cache.sql_cache_short.expire': '1',
'beaker.session.secret': '{74e0cd75-b339-478b-b129-07dd221def1f}',
},
'[handler_console]': {
'formatter': 'color_formatter',
},
# The 'handler_console_sql' block is very similar to the one in
# development.ini, but without the explicit 'level=DEBUG' setting:
# it causes duplicate sqlalchemy debug logs, one through
# handler_console_sql and another through another path.
'[handler_console_sql]': {
'formatter': 'color_formatter_sql',
},
},
),
('development.ini',
'''
Kallithea - Development config:
listening on *:5000
sqlite and kallithea.db
initial_repo_scan = true
debug = true
verbose and colorful logging
''',
{
'[server:main]': {
'host': '0.0.0.0',
},
'[app:main]': {
'initial_repo_scan': 'true',
'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',
},
},
),
]
def main():
# make sure all mako lines starting with '#' (the '##' comments) are marked up as <text>
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, desc, settings in ini_files:
print 'updating:', fn
ini_lines = inifile.expand(mako_marked_up, desc, mako_variable_values, settings)
open(fn, 'w').write(ini_lines)
if __name__ == '__main__':
main()
|