Co-authored-by: Dt8333 <25431943+Dt8333@users.noreply.github.com> Co-authored-by: Soulter <905617992@qq.com>
60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
"""AstrBot CLI入口"""
|
||
|
||
import sys
|
||
|
||
import click
|
||
|
||
from . import __version__
|
||
from .commands import conf, init, plug, run
|
||
|
||
logo_tmpl = r"""
|
||
___ _______.___________..______ .______ ______ .___________.
|
||
/ \ / | || _ \ | _ \ / __ \ | |
|
||
/ ^ \ | (----`---| |----`| |_) | | |_) | | | | | `---| |----`
|
||
/ /_\ \ \ \ | | | / | _ < | | | | | |
|
||
/ _____ \ .----) | | | | |\ \----.| |_) | | `--' | | |
|
||
/__/ \__\ |_______/ |__| | _| `._____||______/ \______/ |__|
|
||
"""
|
||
|
||
|
||
@click.group()
|
||
@click.version_option(__version__, prog_name="AstrBot")
|
||
def cli() -> None:
|
||
"""The AstrBot CLI"""
|
||
click.echo(logo_tmpl)
|
||
click.echo("Welcome to AstrBot CLI!")
|
||
click.echo(f"AstrBot CLI version: {__version__}")
|
||
|
||
|
||
@click.command()
|
||
@click.argument("command_name", required=False, type=str)
|
||
def help(command_name: str | None) -> None:
|
||
"""显示命令的帮助信息
|
||
|
||
如果提供了 COMMAND_NAME,则显示该命令的详细帮助信息。
|
||
否则,显示通用帮助信息。
|
||
"""
|
||
ctx = click.get_current_context()
|
||
if command_name:
|
||
# 查找指定命令
|
||
command = cli.get_command(ctx, command_name)
|
||
if command:
|
||
# 显示特定命令的帮助信息
|
||
click.echo(command.get_help(ctx))
|
||
else:
|
||
click.echo(f"Unknown command: {command_name}")
|
||
sys.exit(1)
|
||
else:
|
||
# 显示通用帮助信息
|
||
click.echo(cli.get_help(ctx))
|
||
|
||
|
||
cli.add_command(init)
|
||
cli.add_command(run)
|
||
cli.add_command(help)
|
||
cli.add_command(plug)
|
||
cli.add_command(conf)
|
||
|
||
if __name__ == "__main__":
|
||
cli()
|