summaryrefslogtreecommitdiff
path: root/py_modules/lsfg_vk/configuration.py
diff options
context:
space:
mode:
authorKurt Himebauch <136133082+xXJSONDeruloXx@users.noreply.github.com>2025-07-19 19:40:51 -0400
committerGitHub <noreply@github.com>2025-07-19 19:40:51 -0400
commita7fb5ee69c8d74534f2994263558ddcd9c8c0d41 (patch)
tree17286b337ff3b780cd4189739426e8e5010cb493 /py_modules/lsfg_vk/configuration.py
parent3ce6ba534900e68c815b4012a456842d3003c6da (diff)
parentb03c82142b7258d0d876ac926e6025965722f7b5 (diff)
downloaddecky-lsfg-vk-a7fb5ee69c8d74534f2994263558ddcd9c8c0d41.tar.gz
decky-lsfg-vk-a7fb5ee69c8d74534f2994263558ddcd9c8c0d41.zip
Merge pull request #47 from xXJSONDeruloXx/unmount-env-state-fixv0.6.8v0.6.7
restore script env var val on mount check and UI state set
Diffstat (limited to 'py_modules/lsfg_vk/configuration.py')
-rw-r--r--py_modules/lsfg_vk/configuration.py30
1 files changed, 19 insertions, 11 deletions
diff --git a/py_modules/lsfg_vk/configuration.py b/py_modules/lsfg_vk/configuration.py
index 1336f21..da765e0 100644
--- a/py_modules/lsfg_vk/configuration.py
+++ b/py_modules/lsfg_vk/configuration.py
@@ -14,26 +14,34 @@ class ConfigurationService(BaseService):
"""Service for managing TOML-based lsfg configuration"""
def get_config(self) -> ConfigurationResponse:
- """Read current TOML configuration
+ """Read current TOML configuration merged with launch script environment variables
Returns:
ConfigurationResponse with current configuration or error
"""
try:
+ # Get TOML configuration (with defaults if file doesn't exist)
if not self.config_file_path.exists():
# Return default configuration with DLL detection if file doesn't exist
from .dll_detection import DllDetectionService
dll_service = DllDetectionService(self.log)
- config = ConfigurationManager.get_defaults_with_dll_detection(dll_service)
- return {
- "success": True,
- "config": config,
- "message": "Using default configuration (config file not found)",
- "error": None
- }
+ toml_config = ConfigurationManager.get_defaults_with_dll_detection(dll_service)
+ else:
+ content = self.config_file_path.read_text(encoding='utf-8')
+ toml_config = ConfigurationManager.parse_toml_content(content)
+
+ # Get script environment variables (if script exists)
+ script_values = {}
+ if self.lsfg_script_path.exists():
+ try:
+ script_content = self.lsfg_script_path.read_text(encoding='utf-8')
+ script_values = ConfigurationManager.parse_script_content(script_content)
+ self.log.info(f"Parsed script values: {script_values}")
+ except Exception as e:
+ self.log.warning(f"Failed to parse launch script: {str(e)}")
- content = self.config_file_path.read_text(encoding='utf-8')
- config = ConfigurationManager.parse_toml_content(content)
+ # Merge TOML config with script values
+ config = ConfigurationManager.merge_config_with_script(toml_config, script_values)
return {
"success": True,
@@ -151,7 +159,7 @@ class ConfigurationService(BaseService):
ConfigurationResponse with success status
"""
try:
- # Get current config
+ # Get current merged config (TOML + script)
current_response = self.get_config()
if not current_response["success"] or current_response["config"] is None:
# If we can't read current config, use defaults with DLL detection