from jinja2_simple_tags import StandaloneTag from .hubapp import TreeFileApp class StaticTag(StandaloneTag): tags = {"static"} def render( self, filename: str = "", hubapp: str | TreeFileApp | None = None ): """ If filename starts with '/', interpret the path as relative to hubapp.base_dir, otherwise assume the path is relative to the current file. """ static_file = self.context["static_file"] h = static_file.hubapp if isinstance(hubapp, str): h = h.app.hubapps[hubapp] elif isinstance(hubapp, TreeFileApp): h = hubapp del hubapp if filename.startswith("/") or h != static_file.hubapp: path = h.base_dir / filename.lstrip("/") else: path = static_file.path.parent / filename return h.uri(path) def get_redis_pass(redis_conf): """ Poor man's redis credentials: read the password from redis_conf. Requires redis being configured with a `requirepass` password set. """ prefix = "requirepass " with open(redis_conf, "rt") as fh: for line in fh: if line.startswith(prefix): return line[len(prefix) :].rstrip() return None