def execute_command(client, command, ostream, debug): try: code, output = client.execute_command(command) except KeyboardInterrupt: print("Keyboard interrupt.") print(CommandStatus.ERROR, file=ostream) except CommandNotFoundError as e: print(e, file=ostream) print(CommandStatus.ERROR, file=ostream) except TimeoutError as e: print(e, file=ostream) print(CommandStatus.ERROR, file=ostream) except BaseException as e: output_exception(e, ostream, debug) print(CommandStatus.ERROR, file=ostream) else: print(output, file=ostream, end='') if code == 0: print(CommandStatus.OK, file=ostream) else: if code < 0: message = human_readable_errno(-code) if message is None: message = code else: message = '{}: {}'.format(code, message) else: message = code print(CommandStatus.ERROR + '({})'.format(message), file=ostream)
def default(self, line): code, output = self.client.execute_command(self.line) self.output(output, end='') if code == 0: self.output(CommandStatus.OK) else: if code < 0: message = human_readable_errno(-code) if message is None: message = code else: message = '{}: {}'.format(code, message) else: message = code self.output(CommandStatus.ERROR + '({})'.format(message))