Coverage for frappe_manager / commands / services / shell.py: 80%

10 statements  

« prev     ^ index     » next       coverage.py v7.13.5, created at 2026-07-02 18:13 +0530

1from typing import Annotated 

2 

3import typer 

4from typer_examples import example 

5 

6from frappe_manager.services_manager import ServicesEnum 

7from frappe_manager.services_manager.services import ServicesManager 

8 

9 

10@example( 

11 "Shell global-db", 

12 "global-db", 

13 detail="Opens a shell into the global-db service for maintenance tasks.", 

14) 

15@example( 

16 "Shell global-nginx-proxy", 

17 "global-nginx-proxy", 

18 detail="Opens a shell into the nginx proxy container used for routing bench domains.", 

19) 

20def shell_services( 

21 ctx: typer.Context, 

22 service_name: Annotated[ServicesEnum, typer.Argument(help="Name of the service.")], 

23 user: Annotated[str | None, typer.Option(help="Connect as this user.")] = None, 

24): 

25 """ 

26 Open shell for the specificed global service. 

27 """ 

28 services_manager: ServicesManager = ctx.obj["services"] 

29 services_manager.shell(service_name.value, user)