import anyio import asyncclick as click from pyslobs import ConnectionConfig, SlobsConnection from .__about__ import __version__ as version @click.group() @click.option( "-d", "--domain", default="127.0.0.1", show_default=True, show_envvar=True, help="The domain of the SLOBS server.", envvar="SLOBS_DOMAIN", ) @click.option( "-p", "--port", default=59650, show_default=True, show_envvar=True, help="The port of the SLOBS server.", envvar="SLOBS_PORT", ) @click.option( "-t", "--token", help="The token for the SLOBS server.", envvar="SLOBS_TOKEN", show_envvar=True, required=True, ) @click.version_option( version, "-v", "--version", message="%(prog)s version: %(version)s" ) @click.pass_context async def cli(ctx: click.Context, domain: str, port: int, token: str | None): """Command line interface for Streamlabs Desktop.""" ctx.ensure_object(dict) config = ConnectionConfig( domain=domain, port=port, token=token, ) ctx.obj["connection"] = SlobsConnection(config) def run(): """Run the CLI application.""" anyio.run(cli.main)