Source code for controller.commands.compose.logs

import typer

from controller import log
from controller.app import Application
from controller.deploy.docker import Docker


[docs] @Application.app.command(help="Watch log tails of all or specified containers") def logs( services: list[str] = typer.Argument( None, help="Services to be inspected", shell_complete=Application.autocomplete_service, ), follow: bool = typer.Option( False, "--follow", "-f", help="Follow logs", show_default=False, ), tail: int = typer.Option( "500", "--tail", "-t", help="Number of lines to show", ), ) -> None: Application.print_command( Application.serialize_parameter("--follow", follow, IF=follow), Application.serialize_parameter("--tail", tail, IF=tail), Application.serialize_parameter("", services), ) Application.get_controller().controller_init(services) services = Application.data.services docker = Docker() try: docker.compose.logs(services, follow=follow, tail=tail) except KeyboardInterrupt: # pragma: no cover log.info("Stopped by keyboard")