From dd07ff4d686f07cdc9736627dd0ef099ef5e4e4f Mon Sep 17 00:00:00 2001 From: troido Date: Fri, 6 Mar 2020 11:26:59 +0100 Subject: new directory structure for the separate client repo --- asciifarmclient/main.py | 65 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 asciifarmclient/main.py (limited to 'asciifarmclient/main.py') diff --git a/asciifarmclient/main.py b/asciifarmclient/main.py new file mode 100644 index 0000000..d720477 --- /dev/null +++ b/asciifarmclient/main.py @@ -0,0 +1,65 @@ +#! /usr/bin/python3 + +import json + +import sys +import termios +import tty +import signal +#import os + +from .connection import Connection +from .gameclient import Client +from .display import Display +from .parseargs import parse_args +from ratuil.screen import Screen + +def main(argv=None): + + (name, socketType, address, keybindings, characters, colours, logfile) = parse_args(argv) + + + connection = Connection(socketType) + try: + connection.connect(address) + except ConnectionRefusedError: + print("ERROR: Could not connect to server.\nAre you sure that the server is running and that you're connecting to the right address?", file=sys.stderr) + return + + error = None + closeMessage = None + + #os.environ.setdefault("ESCDELAY", "25") + + fd = sys.stdin.fileno() + oldterm = termios.tcgetattr(fd) + + try: + + tty.setraw(sys.stdin) + Screen.default.hide_cursor() + + display = Display(characters) + client = Client(display, name, connection, keybindings, logfile) + signal.signal(signal.SIGWINCH, client.onSigwinch) + try: + client.start() + except KeyboardInterrupt: + client.close("^C caught, goodbye") + except Exception as e: + # throw the execption outside ncurses + # so the cleanup can happen first + error = e + closeMessage = client.closeMessage + finally: + ## Set everything back to normal + termios.tcsetattr(fd, termios.TCSADRAIN, oldterm) + Screen.default.finalize() + + + if error is not None: + raise error + + if closeMessage: + print(closeMessage, file=sys.stderr) + -- cgit