mirror of
https://github.com/KenanZhu/AutoLibrary.git
synced 2026-06-18 07:23:03 +08:00
49 lines
1.7 KiB
Python
49 lines
1.7 KiB
Python
# -*- coding: utf-8 -*-
|
|
"""
|
|
Copyright (c) 2026 KenanZhu.
|
|
All rights reserved.
|
|
|
|
This software is provided "as is", without any warranty of any kind.
|
|
You may use, modify, and distribute this file under the terms of the MIT License.
|
|
See the LICENSE file for details.
|
|
"""
|
|
import os
|
|
|
|
import managers.config.ConfigManager as ConfigManager
|
|
|
|
from interfaces.ConfigProvider import CfgKey
|
|
|
|
class ConfigUtils:
|
|
"""
|
|
Config utilities class.
|
|
"""
|
|
|
|
@staticmethod
|
|
def getAutomationConfigPaths(
|
|
) -> dict[str]:
|
|
"""
|
|
Get validated automation config paths from ConfigManager instance.
|
|
These function will validate the config paths and return the validated paths in a dict.
|
|
|
|
Returns:
|
|
dict[str]: Validated automation config paths (include user and run config paths).
|
|
"""
|
|
cfg_mgr = ConfigManager.instance() # config manager instance
|
|
|
|
config_paths = {"run": "", "user": ""}
|
|
auto_config = cfg_mgr.get(CfgKey.GLOBAL.AUTOMATION.ROOT, {})
|
|
for cfg_type in ["run", "user"]:
|
|
paths = auto_config.get(f"{cfg_type}_path", {}).get("paths", [])
|
|
index = auto_config.get(f"{cfg_type}_path", {}).get("current", 0)
|
|
if paths == []:
|
|
paths.append(os.path.join(cfg_mgr.configDir(), f"{cfg_type}.json"))
|
|
if index < 0:
|
|
index = 0
|
|
if index >= len(paths):
|
|
index = len(paths) - 1
|
|
config_paths[cfg_type] = paths[index]
|
|
data = {"current": index, "paths": paths}
|
|
auto_config[f"{cfg_type}_path"] = data
|
|
cfg_mgr.set(CfgKey.GLOBAL.AUTOMATION.ROOT, auto_config)
|
|
return config_paths
|