Add cli.py entrypoint
This commit is contained in:
parent
13c233b6a5
commit
f249cd95f0
|
@ -0,0 +1,59 @@
|
|||
from mcaio.client import AIOMCServer
|
||||
from os import environ
|
||||
from sys import argv
|
||||
from asyncio import run as aiorun
|
||||
|
||||
|
||||
def get_env(key: str) -> str:
|
||||
val = environ.get(key)
|
||||
if val is None:
|
||||
raise ValueError
|
||||
return val
|
||||
|
||||
|
||||
def arg() -> str:
|
||||
if len(argv) != 2:
|
||||
raise RuntimeError
|
||||
return argv[1]
|
||||
|
||||
|
||||
async def get_name(server: AIOMCServer) -> str:
|
||||
return await server.name
|
||||
|
||||
|
||||
async def get_count(server: AIOMCServer) -> int:
|
||||
return await server.players_count
|
||||
|
||||
|
||||
async def get_max(server: AIOMCServer) -> int:
|
||||
return await server.players_count
|
||||
|
||||
|
||||
async def action() -> None:
|
||||
try:
|
||||
HOST, PORT = get_env("MC_HOST"), int(get_env("MC_PORT"))
|
||||
server = AIOMCServer(HOST, PORT)
|
||||
match arg():
|
||||
case 'name':
|
||||
out = get_name(server)
|
||||
case 'pmax':
|
||||
out = get_max(server)
|
||||
case 'pcount':
|
||||
out = get_count(server)
|
||||
case _:
|
||||
raise RuntimeError
|
||||
print(await out)
|
||||
except ValueError or TypeError:
|
||||
print("ERROR: BAD ENV VARS")
|
||||
except RuntimeError:
|
||||
print("Bad args")
|
||||
except ConnectionRefusedError:
|
||||
print("Connection error")
|
||||
|
||||
|
||||
def main():
|
||||
aiorun(action())
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Reference in New Issue