initial python terminal emulator for PTY driver
This commit is contained in:
parent
5f1d6f4350
commit
18a4383ead
@ -1,24 +0,0 @@
|
||||
#!/bin/python3
|
||||
import sys, os
|
||||
import pty
|
||||
|
||||
mode = 'wb'
|
||||
shell = '/bin/bash'
|
||||
if 'SHELL' in os.environ:
|
||||
shell = os.environ['SHELL']
|
||||
|
||||
filename = '/home/chrys/mytypescript.txt'
|
||||
|
||||
script = open(filename, mode)
|
||||
|
||||
def read(fd):
|
||||
data = os.read(fd, 1024)
|
||||
script.write(data)
|
||||
return data
|
||||
|
||||
def write(fd):
|
||||
data = os.read(fd, 1024)
|
||||
return data
|
||||
|
||||
pty.spawn(shell, read, write)
|
||||
|
34
play zone/pyterm.py
Executable file
34
play zone/pyterm.py
Executable file
@ -0,0 +1,34 @@
|
||||
#!/bin/python3
|
||||
import sys, os
|
||||
import pty
|
||||
import pyte
|
||||
|
||||
class FenrirTermStream(pyte.Stream):
|
||||
def __init__(self):
|
||||
super().__init__()
|
||||
def attach(self, screen):
|
||||
super().attach(screen)
|
||||
def feed(self, text):
|
||||
super().feed(text)
|
||||
|
||||
class FenrirTermEmu():
|
||||
def __init__(self):
|
||||
self.shell = '/bin/bash'
|
||||
if 'SHELL' in os.environ:
|
||||
self.shell = os.environ['SHELL']
|
||||
self.screen = pyte.Screen(80,24)
|
||||
self.stream = FenrirTermStream()
|
||||
self.stream.attach(self.screen)
|
||||
def outputCallback(self, fd):
|
||||
data = os.read(fd, 1024)
|
||||
self.stream.feed(data.decode('UTF8'))
|
||||
# alles
|
||||
print(self.screen.display)
|
||||
# input
|
||||
print(data.decode('UTF8'))
|
||||
return data
|
||||
def inputCallback(self, fd):
|
||||
data = os.read(fd, 1024)
|
||||
return data
|
||||
def startEmulator(self):
|
||||
pty.spawn(self.shell, self.outputCallback, self.inputCallback)
|
Loading…
Reference in New Issue
Block a user