diff options
Diffstat (limited to 'py_modules')
| -rw-r--r-- | py_modules/lsfg_vk/installation.py | 12 | ||||
| -rw-r--r-- | py_modules/lsfg_vk/plugin.py | 14 |
2 files changed, 22 insertions, 4 deletions
diff --git a/py_modules/lsfg_vk/installation.py b/py_modules/lsfg_vk/installation.py index 5e0a9c1..ba2c4fe 100644 --- a/py_modules/lsfg_vk/installation.py +++ b/py_modules/lsfg_vk/installation.py @@ -178,6 +178,18 @@ class InstallationService(BaseService): for path in (self.legacy_lib_file, self.legacy_json_file): self._remove_if_exists(path) + def needs_v2_migration(self) -> bool: + legacy_layer = self.legacy_lib_file.exists() or self.legacy_json_file.exists() + legacy_config = False + if self.config_file_path.exists(): + try: + legacy_config = ConfigurationManager.is_legacy_v1( + self.config_file_path.read_text(encoding="utf-8") + ) + except OSError: + legacy_config = False + return legacy_layer or legacy_config + def get_launch_script_path(self) -> str: return str(self.lsfg_launch_script_path) diff --git a/py_modules/lsfg_vk/plugin.py b/py_modules/lsfg_vk/plugin.py index bfb5102..fc2d378 100644 --- a/py_modules/lsfg_vk/plugin.py +++ b/py_modules/lsfg_vk/plugin.py @@ -475,9 +475,15 @@ class Plugin: os.path.join(decky.DECKY_HOME, "lossless-scaling-vk"), os.path.join(decky.DECKY_USER_HOME, ".local", "share", "decky-lossless-scaling-vk")) - try: - self.flatpak_service.migrate_v2() - except Exception as error: - decky.logger.warning(f"Flatpak v2 migration skipped: {error}") + if self.installation_service.needs_v2_migration(): + result = self.installation_service.install() + if not result.get("success"): + decky.logger.warning(f"Native v2 migration failed: {result.get('error')}") + + if self.installation_service.check_installation().get("installed"): + try: + self.flatpak_service.migrate_v2() + except Exception as error: + decky.logger.warning(f"Flatpak v2 migration skipped: {error}") decky.logger.info("decky-lsfg-vk plugin migrations completed") |
