import os
import re
import locale
+from string import Template
-#import util
-#import interface
import logparse
from . import interface, util, config
def init_varfilter():
global varfilter
global varpattern
+ global varsubst
varfilter = {"$title$": config.prefs['title'], "$date$": interface.start.strftime(DATEFMT),"$time$": interface.start.strftime(TIMEFMT), "$hostname$": util.hostname(config.prefs['hostname-path']), "$version$": logparse.__version__, "$css$": os.path.relpath(config.prefs['css'], os.path.dirname(config.prefs['output']))}
varfilter = dict((re.escape(k), v) for k, v in varfilter.items())
varpattern = re.compile("|".join(varfilter.keys()))
+ varsubst = dict(title=config.prefs['title'], date=interface.start.strftime(DATEFMT), time=interface.start.strftime(TIMEFMT), hostname=util.hostname(config.prefs['hostname-path']), version=logparse.__version__, css=os.path.relpath(config.prefs['css'], os.path.dirname(config.prefs['output'])))
def writetitle(title): # write title for a section
if (title == '' or '\n' in title):
# except Exception as e:
# logger.warning("could not copy main.css - " + str(e))
init_varfilter()
- headercontent = open(template, 'r').read()
- headercontent = varpattern.sub(lambda m: varfilter[re.escape(m.group(0))], headercontent)
- return headercontent
+ headercontent = Template(open(template, 'r').read())
+ return headercontent.safe_substitute(varsubst)
def orderbyfreq(l): # order a list by the frequency of its elements and remove duplicates
temp_l = l[:]