diff --git a/pynecone/pc.py b/pynecone/pc.py index ab3c19e23..c05fcf09f 100644 --- a/pynecone/pc.py +++ b/pynecone/pc.py @@ -61,15 +61,14 @@ def run( constants.Env.DEV, help="The environment to run the app in." ), frontend: bool = typer.Option( - True, "--no-frontend", help="Disable frontend execution." - ), - backend: bool = typer.Option( - True, "--no-backend", help="Disable backend execution." + False, "--frontend-only", help="Execute only frontend." ), + backend: bool = typer.Option(False, "--backend-only", help="Execute only backend."), loglevel: constants.LogLevel = typer.Option( 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.""" if platform.system() == "Windows": @@ -78,13 +77,18 @@ def run( ) 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 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") - 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") # Check that the app is initialized. @@ -123,8 +127,10 @@ def run( if backend: backend_cmd(app.__name__, port=int(backend_port), loglevel=loglevel) finally: - processes.kill_process_on_port(frontend_port) - processes.kill_process_on_port(backend_port) + if frontend: + processes.kill_process_on_port(frontend_port) + if backend: + processes.kill_process_on_port(backend_port) @cli.command()