diff --git a/solvable/src/event_handler_main.py b/solvable/src/event_handler_main.py index 3bb6142..e45f2fa 100644 --- a/solvable/src/event_handler_main.py +++ b/solvable/src/event_handler_main.py @@ -1,8 +1,7 @@ -from re import match - from tornado.ioloop import IOLoop from tfw.components import WebideEventHandler, TerminadoEventHandler, ProcessManagingEventHandler, BashMonitor +from tfw.components import TerminalCommands from tfw.networking import MessageSender, TFWServerConnector from tfw.config import TFWENV from tfw.config.logs import logging @@ -15,33 +14,7 @@ def cenator(history): MessageSender().send('JOHN CENA', 'You\'ve executed "{}"'.format(history[-1])) -class Commands: - def __init__(self): - self._command_method_regex = r'^command_(.+)$' - self.command_implemetations = {self._parse_command_name(fun): getattr(self, fun) for fun in dir(self) - if callable(getattr(self, fun)) and self._is_command_implementation(fun)} - - def _is_command_implementation(self, method_name): - return bool(self._match_command_regex(method_name)) - - def _parse_command_name(self, method_name): - try: - return self._match_command_regex(method_name).groups()[0] - except AttributeError: - return '' - - def _match_command_regex(self, string): - return match(self._command_method_regex, string) - - def callback(self, history): - parts = history[-1].split() - command = parts[0] - if command in self.command_implemetations.keys(): - try: - self.command_implemetations[command](*parts[1:]) - except IndexError: - LOG.debug('Command "%s" failed!', command) - +class TestCommands(TerminalCommands): def command_selectdir(self, *args): TFWServerConnector().send_to_eventhandler('webide', {'data': {'command': 'selectdir', @@ -66,7 +39,7 @@ if __name__ == '__main__': directory=TFWENV.WEBIDE_WD, exclude=['*.pyc']) terminado = TerminadoEventHandler(key='shell', monitor=BashMonitor(TFWENV.HISTFILE)) terminado.historymonitor.subscribe_callback(cenator) - commands = Commands() + commands = TestCommands() terminado.historymonitor.subscribe_callback(commands.callback) processmanager = ProcessManagingEventHandler(key='processmanager', dirmonitor=ide.monitor)