mirror of
https://github.com/isc-projects/bind9.git
synced 2026-05-28 04:34:54 -04:00
Add _common dir to jinja2 template loader
This allows include of template snippets from _common/ directory.
This commit is contained in:
parent
4f8e3774bb
commit
e34c3252d9
1 changed files with 10 additions and 4 deletions
|
|
@ -40,7 +40,12 @@ class TemplateEngine:
|
|||
self.directory = Path(directory)
|
||||
self.env_vars = dict(env_vars)
|
||||
self.j2env = jinja2.Environment(
|
||||
loader=jinja2.FileSystemLoader(str(self.directory)),
|
||||
loader=jinja2.FileSystemLoader(
|
||||
[
|
||||
str(self.directory),
|
||||
str(ALL["srcdir"]), # to allow _common/ includes
|
||||
]
|
||||
),
|
||||
undefined=jinja2.StrictUndefined,
|
||||
variable_start_string="@",
|
||||
variable_end_string="@",
|
||||
|
|
@ -65,12 +70,13 @@ class TemplateEngine:
|
|||
variables which the engine was initialized with are also filled in. In
|
||||
case of a variable name clash, `data` has precedence.
|
||||
"""
|
||||
available = self.j2env.list_templates()
|
||||
if template is None:
|
||||
template = f"{output}.j2.manual"
|
||||
if not Path(template).is_file():
|
||||
if template not in available:
|
||||
template = f"{output}.j2"
|
||||
if not Path(template).is_file():
|
||||
raise RuntimeError('No jinja2 template found for "{output}"')
|
||||
if template not in available:
|
||||
raise RuntimeError(f'No jinja2 template found for "{output}"')
|
||||
|
||||
if data is None:
|
||||
data = {**self.env_vars}
|
||||
|
|
|
|||
Loading…
Reference in a new issue