mirror of
https://github.com/derrod/legendary.git
synced 2024-12-22 17:55:27 +00:00
[core] Refactor getting wine/wrapper launch command into its own function
This commit is contained in:
parent
156b4716f4
commit
a1993eb568
|
@ -433,6 +433,26 @@ class LegendaryCore:
|
||||||
|
|
||||||
return env
|
return env
|
||||||
|
|
||||||
|
def get_app_launch_command(self, app_name, wrapper=None, wine_binary=None, disable_wine=False):
|
||||||
|
_cmd = []
|
||||||
|
if wrapper or (wrapper := self.lgd.config.get(app_name, 'wrapper',
|
||||||
|
fallback=self.lgd.config.get('default', 'wrapper',
|
||||||
|
fallback=None))):
|
||||||
|
_cmd.extend(shlex.split(wrapper))
|
||||||
|
|
||||||
|
if os.name != 'nt' and not disable_wine:
|
||||||
|
if not wine_binary:
|
||||||
|
# check if there's a default override
|
||||||
|
wine_binary = self.lgd.config.get('default', 'wine_executable', fallback='wine')
|
||||||
|
# check if there's a game specific override
|
||||||
|
wine_binary = self.lgd.config.get(app_name, 'wine_executable', fallback=wine_binary)
|
||||||
|
|
||||||
|
if not self.lgd.config.getboolean(app_name, 'no_wine',
|
||||||
|
fallback=self.lgd.config.get('default', 'no_wine', fallback=False)):
|
||||||
|
_cmd.append(wine_binary)
|
||||||
|
|
||||||
|
return _cmd
|
||||||
|
|
||||||
def get_launch_parameters(self, app_name: str, offline: bool = False,
|
def get_launch_parameters(self, app_name: str, offline: bool = False,
|
||||||
user: str = None, extra_args: list = None,
|
user: str = None, extra_args: list = None,
|
||||||
wine_bin: str = None, wine_pfx: str = None,
|
wine_bin: str = None, wine_pfx: str = None,
|
||||||
|
@ -453,25 +473,11 @@ class LegendaryCore:
|
||||||
|
|
||||||
working_dir = os.path.split(exe_path)[0]
|
working_dir = os.path.split(exe_path)[0]
|
||||||
|
|
||||||
params = LaunchParameters(game_executable=game_exe, game_directory=install.install_path,
|
params = LaunchParameters(
|
||||||
working_directory=working_dir,
|
game_executable=game_exe, game_directory=install.install_path, working_directory=working_dir,
|
||||||
environment=self.get_app_environment(app_name, wine_pfx=wine_pfx))
|
launch_command=self.get_app_launch_command(app_name, wrapper, wine_bin, disable_wine),
|
||||||
|
environment=self.get_app_environment(app_name, wine_pfx=wine_pfx)
|
||||||
if wrapper or (wrapper := self.lgd.config.get(app_name, 'wrapper',
|
)
|
||||||
fallback=self.lgd.config.get('default', 'wrapper',
|
|
||||||
fallback=None))):
|
|
||||||
params.launch_command.extend(shlex.split(wrapper))
|
|
||||||
|
|
||||||
if os.name != 'nt' and not disable_wine:
|
|
||||||
if not wine_bin:
|
|
||||||
# check if there's a default override
|
|
||||||
wine_bin = self.lgd.config.get('default', 'wine_executable', fallback='wine')
|
|
||||||
# check if there's a game specific override
|
|
||||||
wine_bin = self.lgd.config.get(app_name, 'wine_executable', fallback=wine_bin)
|
|
||||||
|
|
||||||
if not self.lgd.config.getboolean(app_name, 'no_wine',
|
|
||||||
fallback=self.lgd.config.get('default', 'no_wine', fallback=False)):
|
|
||||||
params.launch_command.append(wine_bin)
|
|
||||||
|
|
||||||
if install.launch_parameters:
|
if install.launch_parameters:
|
||||||
try:
|
try:
|
||||||
|
|
Loading…
Reference in a new issue