diff options
Diffstat (limited to 'src/lib/Server/Plugins/TGenshi.py')
-rw-r--r-- | src/lib/Server/Plugins/TGenshi.py | 14 |
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: |