diff --git a/src/utils/resources.py b/src/utils/resources.py index f26a2d9b8..41c27fd01 100644 --- a/src/utils/resources.py +++ b/src/utils/resources.py @@ -152,24 +152,34 @@ class AppResource: "__APP__": self.app, "__YNH_ARCH__": system_arch(), "__YNH_DEBIAN_VERSION__": debian_version(), + "__YNH_DEBIAN_VERSION_ID__": debian_version_id(), + "__YNH_APP_UPSTREAM_VERSION__": ( + manager.wanted["version"].split("~")[0] + if manager.wanted + else manager.current["version"].split("~")[0] + ), } def recursive_apply(function: Callable, data: Any) -> Any: if isinstance(data, dict): # FIXME: hashable? - return {key: recursive_apply(value, function) for key, value in data.items()} + return { + key: recursive_apply(function, value) for key, value in data.items() + } if isinstance(data, list): # FIXME: iterable? - return [recursive_apply(value, function) for value in data] + return [recursive_apply(function, value) for value in data] return function(data) def replace_tokens_in_strings(data: Any): if not isinstance(data, str): - return + return data for token, replacement in replacements.items(): data = data.replace(token, replacement) - recursive_apply(replace_tokens_in_strings, properties) + return data + + properties = recursive_apply(replace_tokens_in_strings, properties) for key, value in properties.items(): setattr(self, key, value)