|
|
|
|
@ -9,14 +9,15 @@ Main launchers module, provides a facade for creating launchers.
|
|
|
|
|
|
|
|
|
|
import logging
|
|
|
|
|
|
|
|
|
|
import ly_test_tools._internal.managers.workspace
|
|
|
|
|
import ly_test_tools
|
|
|
|
|
import ly_test_tools._internal.managers.workspace as workspace_manager
|
|
|
|
|
import ly_test_tools.launchers.platforms.base as base_launcher
|
|
|
|
|
|
|
|
|
|
log = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_PLATFORM, args=None):
|
|
|
|
|
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
|
|
|
|
|
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
|
|
|
|
|
"""
|
|
|
|
|
Create a launcher compatible with the specified workspace, if no specific launcher is found return a generic one.
|
|
|
|
|
|
|
|
|
|
@ -25,12 +26,16 @@ def create_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_PLATFORM,
|
|
|
|
|
:param args: List of arguments to pass to the launcher's 'args' argument during construction
|
|
|
|
|
:return: Launcher instance
|
|
|
|
|
"""
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_PLATFORM)
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform)
|
|
|
|
|
if not launcher_class:
|
|
|
|
|
log.warning(f"Using default launcher for '{ly_test_tools.HOST_OS_PLATFORM}' "
|
|
|
|
|
f"as no option is available for '{launcher_platform}'")
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_PLATFORM)
|
|
|
|
|
return launcher_class(workspace, args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_dedicated_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS_DEDICATED_SERVER, args=None):
|
|
|
|
|
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
|
|
|
|
|
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
|
|
|
|
|
"""
|
|
|
|
|
Create a dedicated launcher compatible with the specified workspace. Dedicated Launcher is only supported on the
|
|
|
|
|
Linux and Windows Platform
|
|
|
|
|
@ -40,12 +45,16 @@ def create_dedicated_launcher(workspace, launcher_platform=ly_test_tools.HOST_OS
|
|
|
|
|
:param args: List of arguments to pass to the launcher's 'args' argument during construction
|
|
|
|
|
:return: Launcher instance
|
|
|
|
|
"""
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_DEDICATED_SERVER)
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform)
|
|
|
|
|
if not launcher_class:
|
|
|
|
|
log.warning(f"Using default dedicated launcher for '{ly_test_tools.HOST_OS_DEDICATED_SERVER}' "
|
|
|
|
|
f"as no option is available for '{launcher_platform}'")
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_DEDICATED_SERVER)
|
|
|
|
|
return launcher_class(workspace, args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_editor(workspace, launcher_platform=ly_test_tools.HOST_OS_EDITOR, args=None):
|
|
|
|
|
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, List[str]) -> Launcher
|
|
|
|
|
# type: (workspace_manager.AbstractWorkspaceManager, str, list[str]) -> base_launcher.Launcher
|
|
|
|
|
"""
|
|
|
|
|
Create an Editor compatible with the specified workspace.
|
|
|
|
|
Editor is only officially supported on the Windows Platform.
|
|
|
|
|
@ -55,12 +64,16 @@ def create_editor(workspace, launcher_platform=ly_test_tools.HOST_OS_EDITOR, arg
|
|
|
|
|
:param args: List of arguments to pass to the launcher's 'args' argument during construction
|
|
|
|
|
:return: Editor instance
|
|
|
|
|
"""
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_EDITOR)
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform)
|
|
|
|
|
if not launcher_class:
|
|
|
|
|
log.warning(f"Using default editor launcher for '{ly_test_tools.HOST_OS_EDITOR}' "
|
|
|
|
|
f"as no option is available for '{launcher_platform}'")
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_EDITOR)
|
|
|
|
|
return launcher_class(workspace, args)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def create_generic_launcher(workspace, launcher_platform, exe_file_name, args=None):
|
|
|
|
|
# type: (ly_test_tools.managers.workspace.WorkspaceManager, str, str, List[str]) -> Launcher
|
|
|
|
|
# type: (workspace_manager.AbstractWorkspaceManager, str, str, list[str]) -> base_launcher.Launcher
|
|
|
|
|
"""
|
|
|
|
|
Create a generic launcher compatible with the specified workspace.
|
|
|
|
|
Allows custom .exe files to serve as the launcher instead of ones listed in the ly_test_tools.LAUNCHERS constant
|
|
|
|
|
@ -71,5 +84,9 @@ def create_generic_launcher(workspace, launcher_platform, exe_file_name, args=No
|
|
|
|
|
:param args: List of arguments to pass to the launcher's 'args' argument during construction
|
|
|
|
|
:return: Launcher instance.
|
|
|
|
|
"""
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform, ly_test_tools.HOST_OS_GENERIC_EXECUTABLE)
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(launcher_platform)
|
|
|
|
|
if not launcher_class:
|
|
|
|
|
log.warning(f"Using default generic executable launcher for '{ly_test_tools.HOST_OS_GENERIC_EXECUTABLE}' "
|
|
|
|
|
f"as no option is available for '{launcher_platform}'")
|
|
|
|
|
launcher_class = ly_test_tools.LAUNCHERS.get(ly_test_tools.HOST_OS_GENERIC_EXECUTABLE)
|
|
|
|
|
return launcher_class(workspace, exe_file_name, args)
|
|
|
|
|
|