|
Lines 59-65
__all__ = ['ConfigHandlers']
Link Here
|
| 59 |
|
59 |
|
| 60 |
VARIABLE_PATTERN = re.compile('@%@([^@]+)@%@') |
60 |
VARIABLE_PATTERN = re.compile('@%@([^@]+)@%@') |
| 61 |
VARIABLE_TOKEN = re.compile('@%@') |
61 |
VARIABLE_TOKEN = re.compile('@%@') |
| 62 |
EXECUTE_TOKEN = re.compile('@!@') |
62 |
EXECUTE_TOKEN = re.compile(b'@!@') |
| 63 |
WARNING_PATTERN = re.compile('(UCRWARNING|BCWARNING|UCRWARNING_ASCII)=(.+)') |
63 |
WARNING_PATTERN = re.compile('(UCRWARNING|BCWARNING|UCRWARNING_ASCII)=(.+)') |
| 64 |
|
64 |
|
| 65 |
INFO_DIR = '/etc/univention/templates/info' |
65 |
INFO_DIR = '/etc/univention/templates/info' |
|
Lines 89-94
def run_filter(template, directory, srcfiles=set(), opts=dict()):
Link Here
|
| 89 |
:param opts: UNUSED. |
89 |
:param opts: UNUSED. |
| 90 |
:returns: The modified template with all UCR variables and sections replaced. |
90 |
:returns: The modified template with all UCR variables and sections replaced. |
| 91 |
""" |
91 |
""" |
|
|
92 |
if isinstance(template, bytes): |
| 93 |
template = template.decode('utf-8') |
| 92 |
while True: |
94 |
while True: |
| 93 |
i = VARIABLE_TOKEN.finditer(template) |
95 |
i = VARIABLE_TOKEN.finditer(template) |
| 94 |
try: |
96 |
try: |
|
Lines 115-120
def run_filter(template, directory, srcfiles=set(), opts=dict()):
Link Here
|
| 115 |
except StopIteration: |
117 |
except StopIteration: |
| 116 |
break |
118 |
break |
| 117 |
|
119 |
|
|
|
120 |
template = template.encode('utf-8') |
| 118 |
while True: |
121 |
while True: |
| 119 |
i = EXECUTE_TOKEN.finditer(template) |
122 |
i = EXECUTE_TOKEN.finditer(template) |
| 120 |
try: |
123 |
try: |
|
Lines 124-131
def run_filter(template, directory, srcfiles=set(), opts=dict()):
Link Here
|
| 124 |
proc = subprocess.Popen( |
127 |
proc = subprocess.Popen( |
| 125 |
(sys.executable,), |
128 |
(sys.executable,), |
| 126 |
stdin=subprocess.PIPE, stdout=subprocess.PIPE, |
129 |
stdin=subprocess.PIPE, stdout=subprocess.PIPE, |
| 127 |
close_fds=True, universal_newlines=True) |
130 |
close_fds=True) |
| 128 |
value = proc.communicate('''\ |
131 |
content = template[start.end():end.start()] |
|
|
132 |
content = b'''\ |
| 129 |
# -*- coding: utf-8 -*- |
133 |
# -*- coding: utf-8 -*- |
| 130 |
import univention.config_registry |
134 |
import univention.config_registry |
| 131 |
configRegistry = univention.config_registry.ConfigRegistry() |
135 |
configRegistry = univention.config_registry.ConfigRegistry() |
|
Lines 133-139
configRegistry.load()
Link Here
|
| 133 |
# for compatibility |
137 |
# for compatibility |
| 134 |
baseConfig = configRegistry |
138 |
baseConfig = configRegistry |
| 135 |
%s |
139 |
%s |
| 136 |
''' % template[start.end():end.start()])[0] |
140 |
''' % (content,) |
|
|
141 |
value = proc.communicate(content)[0] |
| 137 |
template = template[:start.start()] + value + template[end.end():] |
142 |
template = template[:start.start()] + value + template[end.end():] |
| 138 |
|
143 |
|
| 139 |
except StopIteration: |
144 |
except StopIteration: |