54 lines
1.5 KiB
Python
54 lines
1.5 KiB
Python
import os
|
|
import textwrap
|
|
|
|
from cpl_cli.command_abc import CommandABC
|
|
from cpl_core.console.console import Console
|
|
from cpl_core.environment.application_environment_abc import ApplicationEnvironmentABC
|
|
from cpl_cli.configuration.build_settings import BuildSettings
|
|
from cpl_cli.configuration.project_settings import ProjectSettings
|
|
from cpl_cli.live_server.live_server_thread import LiveServerThread
|
|
|
|
|
|
class RunService(CommandABC):
|
|
|
|
def __init__(self, env: ApplicationEnvironmentABC, project_settings: ProjectSettings, build_settings: BuildSettings):
|
|
"""
|
|
Service for the CLI command start
|
|
:param env:
|
|
:param project_settings:
|
|
:param build_settings:
|
|
"""
|
|
CommandABC.__init__(self)
|
|
|
|
self._env = env
|
|
self._project_settings = project_settings
|
|
self._build_settings = build_settings
|
|
|
|
self._src_dir = os.path.join(self._env.working_directory, self._build_settings.source_path)
|
|
|
|
self._args: list[str] = []
|
|
|
|
@property
|
|
def help_message(self) -> str:
|
|
return textwrap.dedent("""\
|
|
Starts your application.
|
|
Usage: cpl run
|
|
""")
|
|
|
|
def execute(self, args: list[str]):
|
|
"""
|
|
Entry point of command
|
|
:param args:
|
|
:return:
|
|
"""
|
|
ls_thread = LiveServerThread(
|
|
self._project_settings.python_executable,
|
|
self._src_dir,
|
|
self._args,
|
|
self._env,
|
|
self._build_settings
|
|
)
|
|
ls_thread.start()
|
|
ls_thread.join()
|
|
Console.write_line()
|