aboutsummaryrefslogtreecommitdiffstats
path: root/termcast_client.py
blob: 22941f864c75fa837014a5561a6ab511617e1ca5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import os
import pty
import socket
import sys

class Client(object):
    def __init__(self):
        pass

    def run(self, argv):
        sock = socket.socket()
        sock.connect(("tozt.net", 2201))
        sock.send(b'hello doy asdf\n\033]499;{"geometry":[80,24]}\007')
        pty.spawn(argv, lambda fd: self._master_read(fd, sock))

    def _master_read(self, fd, sock):
        data = os.read(fd, 1024)
        sock.send(data)
        return data

if __name__ == '__main__':
    client = Client()
    # XXX options
    if len(sys.argv) > 1:
        client.run(sys.argv[1:])
    else:
        client.run(os.getenv("SHELL", default="/bin/sh"))