From dab1d03d81c538966d03fb9318a4588a9e803b44 Mon Sep 17 00:00:00 2001 From: Sol Jerome Date: Sat, 24 Mar 2012 11:20:07 -0500 Subject: Allow to run directly from a git checkout (#1037) Signed-off-by: Sol Jerome --- src/lib/Bcfg2/Server/Lint/Genshi.py | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100755 src/lib/Bcfg2/Server/Lint/Genshi.py (limited to 'src/lib/Bcfg2/Server/Lint/Genshi.py') diff --git a/src/lib/Bcfg2/Server/Lint/Genshi.py b/src/lib/Bcfg2/Server/Lint/Genshi.py new file mode 100755 index 000000000..1965f0330 --- /dev/null +++ b/src/lib/Bcfg2/Server/Lint/Genshi.py @@ -0,0 +1,27 @@ +import genshi.template +import Bcfg2.Server.Lint + +class Genshi(Bcfg2.Server.Lint.ServerPlugin): + """ Check Genshi templates for syntax errors """ + + def Run(self): + """ run plugin """ + loader = genshi.template.TemplateLoader() + for plugin in ['Cfg', 'TGenshi']: + if plugin in self.core.plugins: + self.check_files(self.core.plugins[plugin].entries, + loader=loader) + + def check_files(self, entries, loader=None): + if loader is None: + loader = genshi.template.TemplateLoader() + + for eset in entries.values(): + for fname, sdata in list(eset.entries.items()): + if fname.endswith(".genshi") or fname.endswith(".newtxt"): + try: + loader.load(sdata.name, + cls=genshi.template.NewTextTemplate) + except genshi.template.TemplateSyntaxError, err: + self.LintError("genshi-syntax-error", + "Genshi syntax error: %s" % err) -- cgit v1.2.3-1-g7c22