Skip to content

Commit

Permalink
Merge pull request #1 from ulidtko/master
Browse files Browse the repository at this point in the history
Added a CLI
  • Loading branch information
Dinnerbone committed Feb 27, 2012
2 parents 57984d9 + 8461b21 commit a24e563
Showing 1 changed file with 43 additions and 0 deletions.
43 changes: 43 additions & 0 deletions cli.py
@@ -0,0 +1,43 @@
#!/usr/bin/env python

import sys
from pprint import pprint
from argparse import ArgumentParser

from minecraft_query import MinecraftQuery

def main():
parser = ArgumentParser(description="Query status of Minecraft multiplayer server",
epilog="Exit status: 0 if the server can be reached, otherwise nonzero."
)
parser.add_argument("host", help="target hostname")
parser.add_argument("-q", "--quiet", action='store_true', default=False,
help='don\'t print anything, just check if the server is running')
parser.add_argument("-p", "--port", type=int, default=25565,
help='UDP port of server\'s "query" service [25565]')
parser.add_argument("-r", "--retries", type=int, default=3,
help='retry query at most this number of times [3]')
parser.add_argument("-t", "--timeout", type=int, default=10,
help='retry timeout in seconds [10]')

options = parser.parse_args()

try:
query = MinecraftQuery(options.host, options.port,
timeout=options.timeout,
retries=options.retries)
server_data = query.get_rules()
except socket.error as e:
if not options.quiet:
print "socket exception caught:", e.message
print "Server is down or unreachable."
sys.exit(1)

if not options.quiet:
print "Server response data:"
pprint(server_data)
sys.exit(0)


if __name__=="__main__":
main()

0 comments on commit a24e563

Please sign in to comment.