templates: add support for secrets
Add the secrets module as a Jinja2 Environment global. All templates will be able to access secrets as if it were a dictionary. Signed-off-by: Eric Callahan <arksine.code@gmail.com>
This commit is contained in:
parent
d498eefd13
commit
9dadf50ac6
|
@ -18,14 +18,17 @@ from typing import (
|
||||||
if TYPE_CHECKING:
|
if TYPE_CHECKING:
|
||||||
from moonraker import Server
|
from moonraker import Server
|
||||||
from confighelper import ConfigHelper
|
from confighelper import ConfigHelper
|
||||||
|
from .secrets import Secrets
|
||||||
|
|
||||||
class TemplateFactory:
|
class TemplateFactory:
|
||||||
def __init__(self, config: ConfigHelper) -> None:
|
def __init__(self, config: ConfigHelper) -> None:
|
||||||
self.server = config.get_server()
|
self.server = config.get_server()
|
||||||
|
secrets: Secrets = self.server.load_component(config, 'secrets')
|
||||||
self.jenv = jinja2.Environment('{%', '%}', '{', '}')
|
self.jenv = jinja2.Environment('{%', '%}', '{', '}')
|
||||||
self.jenv.add_extension("jinja2.ext.do")
|
self.jenv.add_extension("jinja2.ext.do")
|
||||||
self.jenv.filters['fromjson'] = json.loads
|
self.jenv.filters['fromjson'] = json.loads
|
||||||
self.add_environment_global('raise_error', self._raise_error)
|
self.add_environment_global('raise_error', self._raise_error)
|
||||||
|
self.add_environment_global('secrets', secrets)
|
||||||
|
|
||||||
def add_environment_global(self, name: str, value: Any):
|
def add_environment_global(self, name: str, value: Any):
|
||||||
if name in self.jenv.globals:
|
if name in self.jenv.globals:
|
||||||
|
|
Loading…
Reference in New Issue