diff --git a/src/utils/config.py b/src/utils/config.py index 9dc91b83a..7e414ac9b 100644 --- a/src/utils/config.py +++ b/src/utils/config.py @@ -651,10 +651,20 @@ class ConfigPanel: raw_msg=True, ) value = self.values[option["name"]] + + # Allow to use value instead of current_value in app config script. + # e.g. apps may write `echo 'value: "foobar"'` in the config file (which is more intuitive that `echo 'current_value: "foobar"'` + # For example hotspot used it... + # See https://github.com/YunoHost/yunohost/pull/1546 + if isinstance(value, dict) and "value" in value and "current_value" not in value: + value["current_value"] = value["value"] + # In general, the value is just a simple value. # Sometimes it could be a dict used to overwrite the option itself value = value if isinstance(value, dict) else {"current_value": value} option.update(value) + + self.values[option["id"]] = value.get("current_value") return self.values @@ -682,7 +692,7 @@ class ConfigPanel: section and section.get("visible") and not evaluate_simple_js_expression( - section["visible"], context=self.new_values + section["visible"], context=self.future_values ) ): continue