62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
"""Tool CLI commands for listing custom tools."""
|
|
|
|
import sys
|
|
import click
|
|
|
|
from cli.utils.config import get_config
|
|
from cli.utils.output import format_output, print_error
|
|
from cli.utils.connection import run_list_custom_tools, UnityConnectionError
|
|
|
|
|
|
def _list_custom_tools() -> None:
|
|
config = get_config()
|
|
try:
|
|
result = run_list_custom_tools(config)
|
|
if config.format != "text":
|
|
click.echo(format_output(result, config.format))
|
|
return
|
|
|
|
if not isinstance(result, dict) or not result.get("success", True):
|
|
click.echo(format_output(result, config.format))
|
|
return
|
|
|
|
tools = result.get("tools")
|
|
if tools is None:
|
|
data = result.get("data", {})
|
|
tools = data.get("tools") if isinstance(data, dict) else None
|
|
if not isinstance(tools, list):
|
|
click.echo(format_output(result, config.format))
|
|
return
|
|
|
|
click.echo(f"Custom tools ({len(tools)}):")
|
|
for i, tool in enumerate(tools):
|
|
name = tool.get("name") if isinstance(tool, dict) else str(tool)
|
|
click.echo(f" [{i}] {name}")
|
|
except UnityConnectionError as e:
|
|
print_error(str(e))
|
|
sys.exit(1)
|
|
|
|
|
|
@click.group("tool")
|
|
def tool():
|
|
"""Tool management - list custom tools for the active Unity project."""
|
|
pass
|
|
|
|
|
|
@tool.command("list")
|
|
def list_tools():
|
|
"""List custom tools registered for the active Unity project."""
|
|
_list_custom_tools()
|
|
|
|
|
|
@click.group("custom_tool")
|
|
def custom_tool():
|
|
"""Alias for tool management (custom tools)."""
|
|
pass
|
|
|
|
|
|
@custom_tool.command("list")
|
|
def list_custom_tools():
|
|
"""List custom tools registered for the active Unity project."""
|
|
_list_custom_tools()
|