initial python terminal emulator for PTY driver
This commit is contained in:
		| @@ -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) | ||||
		Reference in New Issue
	
	Block a user