def exec_cmd(self, text): text = text.strip() self.log("g> " + text, w_time=True) if text.startswith('!'): # escape to shell for this command self.exec_shell(text[1:]) return args = text.split() cmd, tokens = args[0], args[1:] # process args args, kwargs = grc.prep_args(tokens) try: method = getattr(self._cmdobj, "cmd_" + cmd.lower()) except AttributeError: self.log("|E| No such command: '%s'" % (cmd)) return try: res = method(*args, **kwargs) if res is not None: self.log(str(res)) # this brings the focus back to the command bar if the command # causes a new window to be opened self.cmd_w.focus() except Exception as e: self.log("|E| Error executing '%s': %s" % (text, str(e)))