"""Run the Snake game server.""" import asyncio import argparse from src.server.game_server import GameServer from src.shared.constants import DEFAULT_HOST, DEFAULT_PORT async def main() -> None: """Run the server with command line arguments.""" parser = argparse.ArgumentParser(description="Run the Snake game server") parser.add_argument( "--host", default=DEFAULT_HOST, help=f"Host address to bind to (default: {DEFAULT_HOST})", ) parser.add_argument( "--port", type=int, default=DEFAULT_PORT, help=f"Port number to bind to (default: {DEFAULT_PORT})", ) parser.add_argument( "--name", default="Snake Server", help="Server name for discovery (default: Snake Server)", ) parser.add_argument( "--no-discovery", action="store_true", help="Disable multicast discovery beacon", ) args = parser.parse_args() server = GameServer( host=args.host, port=args.port, server_name=args.name, enable_discovery=not args.no_discovery, ) await server.start() if __name__ == "__main__": asyncio.run(main())