summaryrefslogtreecommitdiffstats
path: root/src/lib/Server/Plugins/TGenshi.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/Server/Plugins/TGenshi.py')
-rw-r--r--src/lib/Server/Plugins/TGenshi.py14
1 files changed, 11 insertions, 3 deletions
diff --git a/src/lib/Server/Plugins/TGenshi.py b/src/lib/Server/Plugins/TGenshi.py
index d7199d78c..0b9acfe58 100644
--- a/src/lib/Server/Plugins/TGenshi.py
+++ b/src/lib/Server/Plugins/TGenshi.py
@@ -4,9 +4,17 @@ __revision__ = '$Revision$'
from genshi.template import TemplateLoader, TextTemplate, MarkupTemplate, TemplateError
import logging
import Bcfg2.Server.Plugin
+import genshi.core
logger = logging.getLogger('Bcfg2.Plugins.TGenshi')
+def removecomment(stream):
+ """A genshi filter that removes comments from the stream."""
+ for kind, data, pos in stream:
+ if kind is genshi.core.COMMENT:
+ continue
+ yield kind, data, pos
+
class TemplateFile:
'''Template file creates Genshi template structures for the loaded file'''
def __init__(self, name, properties, specific):
@@ -38,9 +46,9 @@ class TemplateFile:
'''Build literal file information'''
fname = entry.get('realname', entry.get('name'))
try:
- stream = self.template.generate(name=fname,
- metadata=metadata,
- properties=self.properties)
+ stream = self.template.generate( \
+ name=fname, metadata=metadata,
+ properties=self.properties).filter(removecomment)
if isinstance(self.template, TextTemplate):
entry.text = stream.render('text')
else: