Coverage for src / lexigram / admin / cli / contributor.py: 0%
12 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-11 02:25 +0800
« prev ^ index » next coverage.py v7.13.5, created at 2026-08-11 02:25 +0800
1"""Admin package CLI contributor."""
3from __future__ import annotations
5from lexigram.contracts.cli.contributions import CommandContribution
6from lexigram.contracts.cli.types import GeneratorDefinition
9class AdminCliContributor:
10 """CLI contributor for the lexigram-admin package."""
12 @property
13 def contributor_id(self) -> str:
14 """Return the contributor identifier."""
15 return "admin"
17 def get_generators(self) -> list[GeneratorDefinition]:
18 """Return generator definitions for admin."""
19 return [
20 GeneratorDefinition(
21 name="admin_action",
22 title="Generate Admin Action",
23 description="Generate a custom admin action",
24 contributor="admin",
25 generator_path="lexigram.admin.cli.generators.admin_action:AdminActionGenerator",
26 default_output_dir="src/admin/actions",
27 ),
28 GeneratorDefinition(
29 name="admin_resource",
30 title="Generate Admin Resource",
31 description="Generate an admin resource for the admin panel",
32 contributor="admin",
33 generator_path="lexigram.admin.cli.generators.admin_resource:AdminResourceGenerator",
34 default_output_dir="src/admin/resources",
35 ),
36 ]
38 def get_commands(self) -> list[CommandContribution]:
39 """Return CLI command contributions for admin."""
40 return [
41 CommandContribution(
42 name="search",
43 help="Search index management commands (reindex, etc.)",
44 app_factory_path="lexigram.admin.cli.commands.search:create_app",
45 contributor="admin",
46 category="admin",
47 ),
48 ]
51__all__ = ["AdminCliContributor"]