annotate scripts/generate-ini.py @ 6214:f973b866fffc

Turbogears2 migration: use sqlalchemy.url iso sqlalchemy.db1.url In Turbogears2, much of the application initialization is handled by the framework, whereas in Pylons the application was responsible for it. Initializing SQLAlchemy is one such part of initialization which is handled by Turbogears2. Turbogears2 expects the configuration file to refer to the database using 'sqlalchemy.url' rather than the current 'sqlalchemy.db1.url'. While the exact name is not really important, not following this approach means we'll need to override the sqlalchemy initialization method. Therefore, as a preparation to the Turbogears2 migration, already change the database reference string under Pylons. When upgrading to a version of Kallithea containing this commit, the .ini file will manually need to be adapted to remove the .db1 strings.
author Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
date Mon, 22 Aug 2016 17:50:51 +0200
parents b1fc5a98952c
children d89d586b26ae
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5536
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
1 #!/usr/bin/env python2
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
2 """
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
3 Based on kallithea/bin/template.ini.mako, generate
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
4 kallithea/config/deployment.ini_tmpl
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
5 development.ini
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
6 kallithea/tests/test.ini
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
7 """
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
8
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
9 import re
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
10
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
11 makofile = 'kallithea/bin/template.ini.mako'
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
12
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
13 # the mako conditionals used in all other ini files and templates
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
14 selected_mako_conditionals = set([
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
15 "database_engine == 'sqlite'",
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
16 "http_server == 'waitress'",
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
17 "error_aggregation_service == 'errormator'",
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
18 "error_aggregation_service == 'sentry'",
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
19 ])
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
20
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
21 # the mako variables used in all other ini files and templates
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
22 mako_variable_values = {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
23 'host': '127.0.0.1',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
24 'port': '5000',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
25 'here': '%(here)s',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
26 'uuid()': '${app_instance_uuid}',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
27 }
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
28
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
29 # files to be generated from the mako template
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
30 ini_files = [
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
31 ('kallithea/config/deployment.ini_tmpl',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
32 '''
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
33 Kallithea - Example config
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
34
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
35 The %(here)s variable will be replaced with the parent directory of this file
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
36 ''',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
37 {}, # exactly the same settings as template.ini.mako
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
38 ),
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
39 ('kallithea/tests/test.ini',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
40 '''
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
41 Kallithea - config for tests:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
42 initial_repo_scan = true
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
43 sqlalchemy and kallithea_test.sqlite
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
44 custom logging
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
45
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
46 The %(here)s variable will be replaced with the parent directory of this file
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
47 ''',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
48 {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
49 '[server:main]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
50 'port': '4999',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
51 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
52 '[app:main]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
53 'initial_repo_scan': 'true',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
54 'app_instance_uuid': 'test',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
55 'show_revision_number': 'true',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
56 'beaker.cache.sql_cache_short.expire': '1',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
57 'beaker.session.secret': '{74e0cd75-b339-478b-b129-07dd221def1f}',
6038
9358211ee144 tests: move test data to top level 'data' folder - make grepping in kallithea/ easier
Mads Kiilerich <madski@unity3d.com>
parents: 5769
diff changeset
58 'cache_dir': '%(here)s/../../data/test/cache',
9358211ee144 tests: move test data to top level 'data' folder - make grepping in kallithea/ easier
Mads Kiilerich <madski@unity3d.com>
parents: 5769
diff changeset
59 'index_dir': '%(here)s/../../data/test/index',
9358211ee144 tests: move test data to top level 'data' folder - make grepping in kallithea/ easier
Mads Kiilerich <madski@unity3d.com>
parents: 5769
diff changeset
60 'archive_cache_dir': '%(here)s/../../data/test/tarballcache',
9358211ee144 tests: move test data to top level 'data' folder - make grepping in kallithea/ easier
Mads Kiilerich <madski@unity3d.com>
parents: 5769
diff changeset
61 'beaker.cache.data_dir': '%(here)s/../../data/test/cache/data',
9358211ee144 tests: move test data to top level 'data' folder - make grepping in kallithea/ easier
Mads Kiilerich <madski@unity3d.com>
parents: 5769
diff changeset
62 'beaker.cache.lock_dir': '%(here)s/../../data/test/cache/lock',
6214
f973b866fffc Turbogears2 migration: use sqlalchemy.url iso sqlalchemy.db1.url
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6145
diff changeset
63 'sqlalchemy.url': 'sqlite:///%(here)s/kallithea_test.sqlite',
5536
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
64 },
6145
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
65 '[handler_console]': {
5536
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
66 'level': 'DEBUG',
6145
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
67 'formatter': 'color_formatter',
5536
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
68 },
6145
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
69 # The 'handler_console_sql' block is very similar to the one in
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
70 # development.ini, but without the explicit 'level=DEBUG' setting:
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
71 # it causes duplicate sqlalchemy debug logs, one through
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
72 # handler_console_sql and another through another path.
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
73 '[handler_console_sql]': {
b1fc5a98952c test.ini: align some logging-related settings with development.ini
Thomas De Schampheleire <thomas.de.schampheleire@gmail.com>
parents: 6038
diff changeset
74 'formatter': 'color_formatter_sql',
5536
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
75 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
76 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
77 ),
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
78 ('development.ini',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
79 '''
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
80 Kallithea - Development config:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
81 listening on *:5000
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
82 sqlite and kallithea.db
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
83 initial_repo_scan = true
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
84 set debug = true
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
85 verbose and colorful logging
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
86
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
87 The %(here)s variable will be replaced with the parent directory of this file
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
88 ''',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
89 {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
90 '[server:main]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
91 'host': '0.0.0.0',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
92 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
93 '[app:main]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
94 'initial_repo_scan': 'true',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
95 'set debug': 'true',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
96 'app_instance_uuid': 'development-not-secret',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
97 'beaker.session.secret': 'development-not-secret',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
98 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
99 '[handler_console]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
100 'level': 'DEBUG',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
101 'formatter': 'color_formatter',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
102 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
103 '[handler_console_sql]': {
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
104 'level': 'DEBUG',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
105 'formatter': 'color_formatter_sql',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
106 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
107 },
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
108 ),
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
109 ]
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
110
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
111
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
112 def main():
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
113 # make sure all mako lines starting with '#' (the '##' comments) are marked up as <text>
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
114 print 'reading:', makofile
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
115 mako_org = file(makofile).read()
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
116 mako_no_text_markup = re.sub(r'</?%text>', '', mako_org)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
117 mako_marked_up = re.sub(r'\n(##.*)', r'\n<%text>\1</%text>', mako_no_text_markup, flags=re.MULTILINE)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
118 if mako_marked_up != mako_org:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
119 print 'writing:', makofile
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
120 file(makofile, 'w').write(mako_marked_up)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
121
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
122 # select the right mako conditionals for the other less sophisticated formats
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
123 def sub_conditionals(m):
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
124 """given a %if...%endif match, replace with just the selected
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
125 conditional sections enabled and the rest as comments
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
126 """
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
127 conditional_lines = m.group(1)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
128 def sub_conditional(m):
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
129 """given a conditional and the corresponding lines, return them raw
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
130 or commented out, based on whether conditional is selected
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
131 """
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
132 criteria, lines = m.groups()
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
133 if criteria not in selected_mako_conditionals:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
134 lines = '\n'.join((l if not l or l.startswith('#') else '#' + l) for l in lines.split('\n'))
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
135 return lines
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
136 conditional_lines = re.sub(r'^%(?:el)?if (.*):\n((?:^[^%\n].*\n|\n)*)',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
137 sub_conditional, conditional_lines, flags=re.MULTILINE)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
138 return conditional_lines
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
139 mako_no_conditionals = re.sub(r'^(%if .*\n(?:[^%\n].*\n|%elif .*\n|\n)*)%endif\n',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
140 sub_conditionals, mako_no_text_markup, flags=re.MULTILINE)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
141
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
142 # expand mako variables
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
143 def pyrepl(m):
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
144 return mako_variable_values.get(m.group(1), m.group(0))
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
145 mako_no_variables = re.sub(r'\${([^}]*)}', pyrepl, mako_no_conditionals)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
146
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
147 # remove utf-8 coding header
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
148 base_ini = re.sub(r'^## -\*- coding: utf-8 -\*-\n', '', mako_no_variables)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
149
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
150 # create ini files
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
151 for fn, desc, settings in ini_files:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
152 print 'updating:', fn
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
153 ini_lines = re.sub(
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
154 '# Kallithea - config file generated with kallithea-config *#\n',
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
155 ''.join('# %-77s#\n' % l.strip() for l in desc.strip().split('\n')),
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
156 base_ini)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
157 def process_section(m):
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
158 """process a ini section, replacing values as necessary"""
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
159 sectionname, lines = m.groups()
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
160 if sectionname in settings:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
161 section_settings = settings[sectionname]
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
162 def process_line(m):
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
163 """process a section line and update value if necessary"""
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
164 setting, value = m.groups()
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
165 line = m.group(0)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
166 if setting in section_settings:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
167 line = '%s = %s' % (setting, section_settings[setting])
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
168 if '$' not in value:
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
169 line = '#%s = %s\n%s' % (setting, value, line)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
170 return line.rstrip()
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
171 lines = re.sub(r'^([^#\n].*) = ?(.*)', process_line, lines, flags=re.MULTILINE)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
172 return sectionname + '\n' + lines
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
173 ini_lines = re.sub(r'^(\[.*\])\n((?:(?:[^[\n].*)?\n)*)', process_section, ini_lines, flags=re.MULTILINE)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
174 file(fn, 'w').write(ini_lines)
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
175
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
176 if __name__ == '__main__':
06d5c043e989 ini: add scripts/generate-ini.py for generating all .ini files from template.ini.mako
Mads Kiilerich <madski@unity3d.com>
parents:
diff changeset
177 main()