Update pc run backend/frontend only flags (#800)

This commit is contained in:
Milo Chen 2023-04-12 01:09:56 +08:00 committed by GitHub
parent 45f533db27
commit adf2b8d395
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -61,15 +61,14 @@ def run(
constants.Env.DEV, help="The environment to run the app in." constants.Env.DEV, help="The environment to run the app in."
), ),
frontend: bool = typer.Option( frontend: bool = typer.Option(
True, "--no-frontend", help="Disable frontend execution." False, "--frontend-only", help="Execute only frontend."
),
backend: bool = typer.Option(
True, "--no-backend", help="Disable backend execution."
), ),
backend: bool = typer.Option(False, "--backend-only", help="Execute only backend."),
loglevel: constants.LogLevel = typer.Option( loglevel: constants.LogLevel = typer.Option(
constants.LogLevel.ERROR, help="The log level to use." constants.LogLevel.ERROR, help="The log level to use."
), ),
port: str = typer.Option(None, help="Specify a different port."), port: str = typer.Option(None, help="Specify a different frontend port."),
backend_port: str = typer.Option(None, help="Specify a different backend port."),
): ):
"""Run the app in the current directory.""" """Run the app in the current directory."""
if platform.system() == "Windows": if platform.system() == "Windows":
@ -78,13 +77,18 @@ def run(
) )
frontend_port = get_config().port if port is None else port frontend_port = get_config().port if port is None else port
backend_port = get_config().backend_port backend_port = get_config().backend_port if backend_port is None else backend_port
# If --no-frontend-only and no --backend-only, then turn on frontend and backend both
if not frontend and not backend:
frontend = True
backend = True
# If something is running on the ports, ask the user if they want to kill or change it. # If something is running on the ports, ask the user if they want to kill or change it.
if processes.is_process_on_port(frontend_port): if frontend and processes.is_process_on_port(frontend_port):
frontend_port = processes.change_or_terminate_port(frontend_port, "frontend") frontend_port = processes.change_or_terminate_port(frontend_port, "frontend")
if processes.is_process_on_port(backend_port): if backend and processes.is_process_on_port(backend_port):
backend_port = processes.change_or_terminate_port(backend_port, "backend") backend_port = processes.change_or_terminate_port(backend_port, "backend")
# Check that the app is initialized. # Check that the app is initialized.
@ -123,8 +127,10 @@ def run(
if backend: if backend:
backend_cmd(app.__name__, port=int(backend_port), loglevel=loglevel) backend_cmd(app.__name__, port=int(backend_port), loglevel=loglevel)
finally: finally:
processes.kill_process_on_port(frontend_port) if frontend:
processes.kill_process_on_port(backend_port) processes.kill_process_on_port(frontend_port)
if backend:
processes.kill_process_on_port(backend_port)
@cli.command() @cli.command()