Mercurial > kallithea
view scripts/generate-ini.py @ 6887:d7222b590156
ini: drop error_aggregation_service section from shipped ini files - it is not needed for development or test
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Thu, 14 Sep 2017 02:08:06 +0200 |
parents | e3cce237d77c |
children | 73934760f601 |
line wrap: on
line source
#!/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 conditionals used in all other ini files and templates selected_mako_conditionals = set([ "database_engine == 'sqlite'", "http_server == 'waitress'", ]) # the mako variables used in all other ini files and templates mako_variable_values = { 'host': '127.0.0.1', 'port': '5000', 'uuid()': '${app_instance_uuid}', } # 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_no_text_markup, desc, selected_mako_conditionals, mako_variable_values, settings) open(fn, 'w').write(ini_lines) if __name__ == '__main__': main()