1
0
mirror of https://github.com/lutris/lutris synced 2024-07-05 16:38:42 +00:00

Further, add a method to fix up the runner configuration, which contains the version, on a runner specific basis.

Ugly, but since we're fixing up the versions for the installer, we should do so for the game as well.

It's that or just insist that the game scripts all should be fixed to specify architecture for their wine versions.
This commit is contained in:
Daniel Johnson 2024-03-26 17:13:15 -04:00
parent eb96626451
commit cda7ce8871
3 changed files with 16 additions and 3 deletions

View File

@ -247,7 +247,10 @@ class LutrisInstaller: # pylint: disable=too-many-instance-attributes
if "system" in self.script:
config["system"] = self._substitute_config(self.script["system"])
if self.script.get(self.runner):
config[self.runner] = self._substitute_config(self.script[self.runner])
installer_runner_config = self._substitute_config(self.script[self.runner])
import_runner(self.runner)().adjust_installer_runner_config(installer_runner_config)
config[self.runner] = installer_runner_config
launcher, launcher_config = self.get_game_launcher_config(self.interpreter.game_files)
if launcher:
config["game"][launcher] = launcher_config

View File

@ -2,7 +2,7 @@
import os
import signal
from gettext import gettext as _
from typing import Callable, Dict, Optional
from typing import Any, Callable, Dict, Optional
from lutris import runtime, settings
from lutris.api import format_runner_version, get_default_runner_version_info
@ -453,6 +453,11 @@ class Runner: # pylint: disable=too-many-public-methods
def get_installer_runner_version(self, installer, use_runner_config: bool = True) -> Optional[str]:
return None
def adjust_installer_runner_config(self, installer_runner_config: Dict[str, Any]) -> None:
"""This is called during installation to let to run fix up in the runner's section of
the configuration before it is saved. This method should modify the dict given."""
pass
def get_runner_version(self, version: str = None) -> Dict[str, str]:
"""Get the appropriate version for a runner, as with get_default_runner_version(),
but this method allows the runner to apply its configuration."""

View File

@ -3,7 +3,7 @@
import os
import shlex
from gettext import gettext as _
from typing import Dict, Optional, Tuple
from typing import Any, Dict, Optional, Tuple
from lutris import runtime, settings
from lutris.api import format_runner_version, normalize_version_architecture
@ -816,6 +816,11 @@ class wine(Runner):
return version
def adjust_installer_runner_config(self, installer_runner_config: Dict[str, Any]) -> None:
version = installer_runner_config.get("version")
if version:
installer_runner_config["version"] = normalize_version_architecture(version)
@classmethod
def get_runner_version_and_config(cls) -> Tuple[str, LutrisConfig]:
runner_config = LutrisConfig(runner_slug="wine")