from tfw.components.terminado_mini_server import TerminadoMiniServer from tfw.event_handler_base import TriggerlessEventHandler from tfw.config import tfwenv from tfw.config.logs import logging log = logging.getLogger(__name__) class TerminadoEventHandler(TriggerlessEventHandler): def __init__(self, key): super().__init__(key) self.working_directory = tfwenv.TERMINADO_DIR self.terminado_server = TerminadoMiniServer('/terminal', tfwenv.TERMINADO_PORT, tfwenv.TERMINADO_WD, ['bash']) self.commands = {'write': self.write} self.terminado_server.listen() def handle_event(self, key, data_json): log.debug('TerminadoEventHandler received event: {}'.format(data_json)) data = data_json['data'] self.commands[data['command']](data) def write(self, data): self.terminado_server.pty.write(data['shellcmd'])