6b642d7674
* refactor: bundled webui static files into wheel and replace astrbot cli log with English - Translated and standardized log messages in cmd_conf.py for better clarity. - Updated initialization logic in cmd_init.py to provide clearer user prompts and error handling. - Improved plugin management commands in cmd_plug.py with consistent language and error messages. - Enhanced run command in cmd_run.py with clearer status messages and error handling. - Updated utility functions in basic.py and plugin.py to improve readability and maintainability. - Added version comparison logic in version_comparator.py with clearer comments. - Enhanced logging configuration in log.py to suppress noisy loggers. - Updated the updater logic in updator.py to provide clearer error messages for users. - Improved IO utility functions in io.py to handle dashboard versioning more effectively. - Enhanced dashboard server logic in server.py to prioritize bundled assets and improve user feedback. - Updated pyproject.toml to include bundled dashboard assets and custom build hooks. - Added a custom build script (hatch_build.py) to automate dashboard builds during package creation. * refactor: improve exception messages and formatting in CLI command validation * perf: change npm install to npm ci for consistent dependency installation * fix
60 lines
1.8 KiB
Python
60 lines
1.8 KiB
Python
"""AstrBot CLI entry point"""
|
|
|
|
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:
|
|
"""Display help information for commands
|
|
|
|
If COMMAND_NAME is provided, display detailed help for that command.
|
|
Otherwise, display general help information.
|
|
"""
|
|
ctx = click.get_current_context()
|
|
if command_name:
|
|
# Find the specified command
|
|
command = cli.get_command(ctx, command_name)
|
|
if command:
|
|
# Display help for the specific command
|
|
click.echo(command.get_help(ctx))
|
|
else:
|
|
click.echo(f"Unknown command: {command_name}")
|
|
sys.exit(1)
|
|
else:
|
|
# Display general help information
|
|
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()
|