From 34de9114c5f338c0cfabf85d06197c148389d61d Mon Sep 17 00:00:00 2001 From: Jan Lindemann Date: Wed, 12 Mar 2025 13:37:32 +0100 Subject: [PATCH] Config: Support glob_paths_env_key Signed-off-by: Jan Lindemann --- tools/python/jwutils/Config.py | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/tools/python/jwutils/Config.py b/tools/python/jwutils/Config.py index 64cceb6..6eb59ae 100644 --- a/tools/python/jwutils/Config.py +++ b/tools/python/jwutils/Config.py @@ -63,18 +63,33 @@ class Config(): # export ret.add("", tree) return ret - def __init__(self, search_dirs: Optional[list[str]]=None, glob_paths: Optional[list[str]]=None, - defaults: Optional[Dict[str, str]]=None, tree: Optional[StringTree]=None, parent=None, - root_section=None, refuse_mode_mask=0o0027) -> None: + def __init__(self, + search_dirs: Optional[list[str]]=None, + glob_paths: Optional[list[str]]=None, + glob_paths_env_key: Optional[str]=None, + defaults: Optional[Dict[str, str]]=None, + tree: Optional[StringTree]=None, + parent=None, + root_section=None, + refuse_mode_mask=0o0027 + ) -> None: self.__parent = parent if tree is not None: assert(search_dirs is None) assert(glob_paths is None) + assert(glob_paths_env_key is None) self.__conf = tree else: assert(tree is None) + if glob_paths_env_key is not None: + glob_paths_env = os.getenv(glob_paths_env_key) + if glob_paths_env is not None: + if glob_paths is None: + glob_paths = [] + glob_paths.extend(glob_paths_env.split(':')) + self.__conf = self.__load(search_dirs=search_dirs, glob_paths=glob_paths, refuse_mode_mask=refuse_mode_mask)