Skip to content

aria2_server.cli.launch

__all__ module-attribute

__all__ = ('launch_cli')

launch_cli module-attribute

launch_cli = Typer(invoke_without_command=True)

launch

launch(config: Optional[Path] = None) -> None

Launch aria2-server.

Source code in src/aria2_server/cli/launch.py
@launch_cli.callback()
def launch(
    config: Annotated[
        Optional[Path],
        typer.Option(
            help="aria2-server config file path",
            dir_okay=False,
            readable=True,
            allow_dash=True,
        ),
    ] = None,
) -> None:
    """Launch aria2-server."""
    if config is not None:
        logger.info(f"Loading config from: {config}")
        config_model = _load_config_from_file(str(config))
        logger.info(f"Loaded config:\n{config_model.model_dump_json(indent=4)}")
        from aria2_server.config import reload

        reload(config_model)

    from aria2_server.app import main as app_main
    from aria2_server.config import GLOBAL_CONFIG
    from aria2_server.logger import configure_default_logging

    uvicorn_logging_level = GLOBAL_CONFIG.server.uvicorn_logging_level
    if uvicorn_logging_level == "trace":
        uvicorn_logging_level = "debug"

    logging_level = logging.getLevelName(uvicorn_logging_level.upper())
    assert isinstance(logging_level, int)

    configure_default_logging(logging_level)

    app_main()