import curses
import signal
+import os
def set_window_geometries():
stdscr.refresh()
-def main(stdscr):
+def cursed_main(stdscr):
curses.noecho()
curses.curs_set(False)
# stdscr.keypad(True)
while True:
draw_screen()
char = stdscr.getch()
- if (char >= 0 and chr(char) == 'Q'):
- exit()
+ if (char >= 0):
+ if chr(char) in commands:
+ commands[chr(char)]()
+
def foo():
winmap = ['.', 'o', '.', 'o', 'O', 'o', '.', 'o', '.', 'x', 'y', 'x']
return offset, size, winmap
+def command_quit():
+ io["file_out"].write("QUIT\n")
+ io["file_out"].flush()
+ raise SystemExit("Received QUIT command, forwarded to server, leaving.")
+
+
windows = [
{"config": [1, 33], "func": foo},
{"config": [-7, 33], "func": foo},
{"config": [4, 16], "func": foo},
{"config": [0, -34], "func": foo}
]
-
+io = {
+ "path_out": "server/in"
+}
+commands = {
+ "Q": command_quit
+}
sep_size = 1 # Width of inter-window borders and title bars.
stdscr = None
screen_size = [0,0]
-curses.wrapper(main)
+
+try:
+ if (not os.access(io["path_out"], os.F_OK)):
+ msg = "No server input file found at " + io["path_out"] + "."
+ raise SystemExit(msg)
+ io["file_out"] = open(io["path_out"], "a")
+ curses.wrapper(cursed_main)
+except SystemExit as exit:
+ print("ABORTING: " + exit.args[0])
+except:
+ print("SOMETHING WENT WRONG IN UNEXPECTED WAYS")
+ raise
+finally:
+ if "file_out" in io:
+ io["file_out"].close()