1010
1111from vibepod .constants import EXIT_DOCKER_NOT_RUNNING
1212from vibepod .core .config import get_config
13- from vibepod .core .docker import DockerClientError , DockerManager
13+ from vibepod .core .docker import DockerClientError , get_manager
1414from vibepod .utils .console import error , info , success , warning
1515
1616app = typer .Typer (help = "View logs and traffic UI" )
2020def logs_start (
2121 port : Annotated [int | None , typer .Option ("--port" , help = "Datasette host port" )] = None ,
2222 no_open : Annotated [bool , typer .Option ("--no-open" , help = "Do not open browser" )] = False ,
23+ runtime : Annotated [
24+ str | None ,
25+ typer .Option ("--runtime" , help = "Container runtime to use (docker or podman)" ),
26+ ] = None ,
2327) -> None :
2428 """Start or reuse Datasette for session and proxy logs."""
2529 config = get_config ()
@@ -34,7 +38,7 @@ def logs_start(
3438 ).expanduser ()
3539
3640 try :
37- manager = DockerManager ( )
41+ manager = get_manager ( runtime_override = runtime , config = config )
3842 except DockerClientError as exc :
3943 error (str (exc ))
4044 raise typer .Exit (EXIT_DOCKER_NOT_RUNNING ) from exc
@@ -55,10 +59,14 @@ def logs_start(
5559@app .command ("stop" )
5660def logs_stop (
5761 force : Annotated [bool , typer .Option ("-f" , "--force" , help = "Force stop" )] = False ,
62+ runtime : Annotated [
63+ str | None ,
64+ typer .Option ("--runtime" , help = "Container runtime to use (docker or podman)" ),
65+ ] = None ,
5866) -> None :
5967 """Stop the Datasette container."""
6068 try :
61- manager = DockerManager ( )
69+ manager = get_manager ( runtime_override = runtime , config = get_config () )
6270 except DockerClientError as exc :
6371 error (str (exc ))
6472 raise typer .Exit (EXIT_DOCKER_NOT_RUNNING ) from exc
@@ -73,10 +81,15 @@ def logs_stop(
7381
7482
7583@app .command ("status" )
76- def logs_status () -> None :
84+ def logs_status (
85+ runtime : Annotated [
86+ str | None ,
87+ typer .Option ("--runtime" , help = "Container runtime to use (docker or podman)" ),
88+ ] = None ,
89+ ) -> None :
7790 """Show Datasette container status."""
7891 try :
79- manager = DockerManager ( )
92+ manager = get_manager ( runtime_override = runtime , config = get_config () )
8093 except DockerClientError as exc :
8194 error (str (exc ))
8295 raise typer .Exit (EXIT_DOCKER_NOT_RUNNING ) from exc
@@ -94,6 +107,10 @@ def logs_status() -> None:
94107def logs_ui (
95108 port : Annotated [int | None , typer .Option ("--port" , help = "Datasette host port" )] = None ,
96109 no_open : Annotated [bool , typer .Option ("--no-open" , help = "Do not open browser" )] = False ,
110+ runtime : Annotated [
111+ str | None ,
112+ typer .Option ("--runtime" , help = "Container runtime to use (docker or podman)" ),
113+ ] = None ,
97114) -> None :
98115 """Alias for `vp logs start`."""
99- logs_start (port = port , no_open = no_open )
116+ logs_start (port = port , no_open = no_open , runtime = runtime )
0 commit comments