Coverage for frappe_manager / commands / services / start.py: 39%
23 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
« prev ^ index » next coverage.py v7.13.5, created at 2026-07-02 18:13 +0530
1from typing import Annotated
3import typer
4from typer_examples import example
6from frappe_manager.output_manager import get_global_output_handler
7from frappe_manager.services_manager import ServicesEnum
8from frappe_manager.services_manager.services import ServicesManager
11@example(
12 "Start global-db only",
13 "global-db",
14 detail="Starts only the global-db service used to store bench databases.",
15)
16@example(
17 "Start all global services",
18 "all",
19 detail="Starts all global services managed by FM (nginx-proxy, global-db, etc.).",
20)
21def start_services(
22 ctx: typer.Context,
23 service_name: Annotated[ServicesEnum, typer.Argument(help="Name of the service.")],
24):
25 """Starts global services."""
26 services_manager: ServicesManager = ctx.obj["services"]
27 output = get_global_output_handler()
29 if service_name.value == ServicesEnum.all:
30 for service in ServicesEnum:
31 if service == ServicesEnum.all:
32 continue
34 if services_manager.is_service_running(service.value):
35 output.print(f"Skipping already running service {service.value}")
36 continue
38 services_manager.start_service(services=[service.value])
39 output.print(f"Started service {service.value}")
40 elif not services_manager.is_service_running(service_name.value):
41 services_manager.start_service(services=[service_name.value])
42 else:
43 output.print(f"Skipping already running service {service_name.value}")