From 7981653c23e96f74bb31d03f10b36cf34909275a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9lix=20Pi=C3=A9dallu?= Date: Thu, 14 Dec 2023 17:22:21 +0100 Subject: [PATCH] Apply __APP__ -> self.app recursively thanks to recursive_apply --- src/utils/resources.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/utils/resources.py b/src/utils/resources.py index 324a0762c..7cbdfb893 100644 --- a/src/utils/resources.py +++ b/src/utils/resources.py @@ -34,6 +34,7 @@ from moulinette.utils.filesystem import ( ) from yunohost.utils.system import system_arch from yunohost.utils.error import YunohostError, YunohostValidationError +from yunohost.utils.algorithms import recursive_apply logger = getActionLogger("yunohost.app_resources") @@ -146,15 +147,20 @@ class AppResource: def __init__(self, properties: Dict[str, Any], app: str, manager=None): self.app = app self.manager = manager + properties = self.default_properties | properties - for key, value in self.default_properties.items(): - if isinstance(value, str): - value = value.replace("__APP__", self.app) - setattr(self, key, value) + replacements: dict[str, str] = { + "__APP__": self.app, + } + + def replace_tokens_in_strings(data: Any): + if not isinstance(data, str): + return + for token, replacement in replacements.items(): + data = data.replace(token, replacement) + recursive_apply(replace_tokens_in_strings, properties) for key, value in properties.items(): - if isinstance(value, str): - value = value.replace("__APP__", self.app) setattr(self, key, value) def get_setting(self, key):