def render(self, template_name, template_values=None, **kwargs): # using jinja2 templates instead of tornados to keep consistency if type(template_values) == dict: template_values.update(kwargs) else: template_values = kwargs template_values['uri'] = self.request.uri if 'log_templates' in config['tornado'] and config['tornado']['log_templates']: log.info("TEMPLATE %s: %s" % (template_name, template_values)) else: log.info("TEMPLATE %s" % template_name) for key in config: if type(config[key]) is dict: for param in config[key]: template_values[key + "_" + param] = str(config[key][param]) else: template_values[key] = config[key] template_values['template_name'] = template_name if 'user' not in template_values: template_values['user'] = self.user template_dir = os.path.abspath(os.path.join(os.path.dirname(__main__.__file__), "templates")) renderer = render_jinja(template_dir) renderer._lookup.filters.update(filters.filters) output = (renderer[template_name](template_values)).encode('utf-8') suffix = strings.suffix('.', template_name) if suffix == "html": self.html(output) else: self.text(output)
def secure_pid(run_folder): name = strings.prefix('.', os.path.basename(__main__.__file__)) if name == "__main__": name = strings.suffix('/', os.path.dirname(__main__.__file__)) log.info("Attempting to launch daemon %s..." % name) pid = str(os.getpid()) if not os.path.isdir(run_folder): os.makedirs(run_folder) pidfile = os.path.join(run_folder, "%s.pid" % name) if os.path.isfile(pidfile): old_pid = open(pidfile).read() log.info("--> pidfile already exists for %s" % old_pid) kill_process(old_pid) open(pidfile, 'w').write(pid) log.info("--> launched with pid %s" % pid)