#!/bin/env python3 import socket from sys import argv, stderr, exit argv0 = 'taken.py' def usage(): global argv0 print(f'usage: {argv0} ', file=stderr) exit(-1) def send_cmd(reader, writer, cmd): lines = [] writer.write(cmd.encode()+b'\n') writer.flush() while True: line = reader.readline() if line == b'?\n': raise Exception('bad cmd') elif line == b'OKAY\n': return lines else: lines.append(line.decode().strip()) if len(argv) > 0: argv0 = argv[0] argv = argv[1:] if len(argv) != 2: usage() host, port = argv sok = socket.create_connection((host, port)) reader, writer = sok.makefile('rb'), sok.makefile('wb') taken = send_cmd(reader, writer, 'list taken jobs') for job in taken: jid = job.split('\t',1)[0] print(f'job {jid}:') info = send_cmd(reader, writer, f'info for job {jid} is') for line in info: print(f'\t{line}') print() meta = send_cmd(reader, writer, 'meta is') for line in meta: print(f'\t{line}') print()