Mercurial > kallithea
annotate rhodecode/bin/rhodecode_config.py @ 4147:1c8f818787b3 rhodecode-2.2.5-gpl
old style: show the full link box on summary page - no overlap or truncation
author | Mads Kiilerich <madski@unity3d.com> |
---|---|
date | Wed, 02 Jul 2014 19:03:23 -0400 |
parents | 31e119cb02ef |
children | 7e5f8c12a3fc |
rev | line source |
---|---|
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
1 # -*- coding: utf-8 -*- |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
2 # This program is free software: you can redistribute it and/or modify |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
3 # it under the terms of the GNU General Public License as published by |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
4 # the Free Software Foundation, either version 3 of the License, or |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
5 # (at your option) any later version. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
6 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
7 # This program is distributed in the hope that it will be useful, |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
8 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
9 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
10 # GNU General Public License for more details. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
11 # |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
12 # You should have received a copy of the GNU General Public License |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
13 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
4011
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
14 """ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
15 rhodecode.bin.rhodecode_config |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
16 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
17 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
18 configuration generator for RhodeCode |
4011
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
19 |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
20 :created_on: Jun 18, 2013 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
21 :author: marcink |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
22 :copyright: (c) 2013 RhodeCode GmbH. |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
23 :license: GPLv3, see LICENSE for more details. |
4011
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
24 """ |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
25 |
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
26 |
4011
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
27 from __future__ import with_statement |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
28 import os |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
29 import sys |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
30 import uuid |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
31 import argparse |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
32 from mako.template import Template |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
33 TMPL = 'template.ini.mako' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
34 here = os.path.dirname(os.path.abspath(__file__)) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
35 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
36 def argparser(argv): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
37 usage = ( |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
38 "rhodecode-config [-h] [--filename=FILENAME] [--template=TEMPLATE] \n" |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
39 "VARS optional specify extra template variable that will be available in " |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
40 "template. Use comma separated key=val format eg.\n" |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
41 "key1=val1,port=5000,host=127.0.0.1,elements='a\,b\,c'\n" |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
42 ) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
43 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
44 parser = argparse.ArgumentParser( |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
45 description='RhodeCode CONFIG generator with variable replacement', |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
46 usage=usage |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
47 ) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
48 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
49 ## config |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
50 group = parser.add_argument_group('CONFIG') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
51 group.add_argument('--filename', help='Output ini filename.') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
52 group.add_argument('--template', help='Mako template file to use instead of ' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
53 'the default builtin template') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
54 group.add_argument('--raw', help='Store given mako template as raw without ' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
55 'parsing. Use this to create custom template ' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
56 'initially', action='store_true') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
57 group.add_argument('--show-defaults', help='Show all default variables for ' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
58 'builtin template', action='store_true') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
59 args, other = parser.parse_known_args() |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
60 return parser, args, other |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
61 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
62 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
63 def _escape_split(text, sep): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
64 """ |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
65 Allows for escaping of the separator: e.g. arg='foo\, bar' |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
66 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
67 It should be noted that the way bash et. al. do command line parsing, those |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
68 single quotes are required. a shameless ripoff from fabric project. |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
69 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
70 """ |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
71 escaped_sep = r'\%s' % sep |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
72 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
73 if escaped_sep not in text: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
74 return text.split(sep) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
75 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
76 before, _, after = text.partition(escaped_sep) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
77 startlist = before.split(sep) # a regular split is fine here |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
78 unfinished = startlist[-1] |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
79 startlist = startlist[:-1] |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
80 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
81 # recurse because there may be more escaped separators |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
82 endlist = _escape_split(after, sep) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
83 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
84 # finish building the escaped value. we use endlist[0] becaue the first |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
85 # part of the string sent in recursion is the rest of the escaped value. |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
86 unfinished += sep + endlist[0] |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
87 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
88 return startlist + [unfinished] + endlist[1:] # put together all the parts |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
89 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
90 def _run(argv): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
91 parser, args, other = argparser(argv) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
92 if not len(sys.argv) > 1: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
93 print parser.print_help() |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
94 sys.exit(0) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
95 # defaults that can be overwritten by arguments |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
96 tmpl_stored_args = { |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
97 'http_server': 'waitress', |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
98 'lang': 'en', |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
99 'database_engine': 'sqlite', |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
100 'host': '127.0.0.1', |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
101 'port': 5000, |
4116
ffd45b185016
Imported some of the GPLv3'd changes from RhodeCode v2.2.5.
Bradley M. Kuhn <bkuhn@sfconservancy.org>
parents:
4011
diff
changeset
|
102 'error_aggregation_service': None, |
4011
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
103 } |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
104 if other: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
105 # parse arguments, we assume only first is correct |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
106 kwargs = {} |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
107 for el in _escape_split(other[0], ','): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
108 kv = _escape_split(el, '=') |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
109 if len(kv) == 2: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
110 k, v = kv |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
111 kwargs[k] = v |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
112 # update our template stored args |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
113 tmpl_stored_args.update(kwargs) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
114 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
115 # use default that cannot be replaced |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
116 tmpl_stored_args.update({ |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
117 'uuid': lambda: uuid.uuid4().hex, |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
118 'here': os.path.abspath(os.curdir), |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
119 }) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
120 if args.show_defaults: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
121 for k,v in tmpl_stored_args.iteritems(): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
122 print '%s=%s' % (k, v) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
123 sys.exit(0) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
124 try: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
125 # built in template |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
126 tmpl_file = os.path.join(here, TMPL) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
127 if args.template: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
128 tmpl_file = args.template |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
129 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
130 with open(tmpl_file, 'rb') as f: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
131 tmpl_data = f.read() |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
132 if args.raw: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
133 tmpl = tmpl_data |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
134 else: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
135 tmpl = Template(tmpl_data).render(**tmpl_stored_args) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
136 with open(args.filename, 'wb') as f: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
137 f.write(tmpl) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
138 print 'Wrote new config file in %s' % (os.path.abspath(args.filename)) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
139 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
140 except Exception: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
141 from mako import exceptions |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
142 print exceptions.text_error_template().render() |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
143 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
144 def main(argv=None): |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
145 """ |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
146 Main execution function for cli |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
147 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
148 :param argv: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
149 """ |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
150 if argv is None: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
151 argv = sys.argv |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
152 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
153 try: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
154 return _run(argv) |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
155 except Exception: |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
156 raise |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
157 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
158 |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
159 if __name__ == '__main__': |
4959e22af6ca
Added ini config maker with dynamic variable replacements.
Marcin Kuzminski <marcin@python-works.com>
parents:
diff
changeset
|
160 sys.exit(main(sys.argv)) |