(self,cmd,send_reply)
| 90 | # Otherwise what we get from Bluetooth UART, we just send as |
| 91 | # a message. |
| 92 | def exec_user_command(self,cmd,send_reply): |
| 93 | cmd = str(cmd).strip() |
| 94 | if len(cmd) == 0: return |
| 95 | |
| 96 | self.fw.serial_log("CLI: %s" % cmd) |
| 97 | if cmd[0] == '!': |
| 98 | # Command call. |
| 99 | argv = self.split_arguments(cmd[1:]) |
| 100 | argc = len(argv) |
| 101 | if argc == 0: return |
| 102 | method_name = 'cmd_'+argv[0] |
| 103 | if not hasattr(self.__class__,method_name): |
| 104 | send_reply("Unknown command: "+argv[0]) |
| 105 | return |
| 106 | |
| 107 | # Call the method logically bound to the command name. |
| 108 | method = getattr(self.__class__, method_name) |
| 109 | if method(self,argv,argc,send_reply) == False: |
| 110 | send_reply("Wrong number of arguments for: "+argv[0]) |
| 111 | elif cmd[0] == '#': |
| 112 | # Encrypted message. |
| 113 | idx = cmd.find(' ') |
| 114 | key_name = cmd[1:idx] |
| 115 | text = cmd[idx+1:] |
| 116 | if not self.fw.keychain.has_key(key_name): |
| 117 | send_reply("No such key '"+str(key_name)+"'") |
| 118 | else: |
| 119 | msg = Message(nick=self.fw.config['nick'], text=text, key_name=key_name) |
| 120 | self.fw.send_asynchronously(msg,max_delay=0,num_tx=3,relay=True) |
| 121 | self.fw.scroller.print("#"+key_name+" you> "+msg.text) |
| 122 | self.fw.refresh_view() |
| 123 | else: |
| 124 | # Plain text message. |
| 125 | key_name = self.default_key |
| 126 | group = "" if not key_name else "#"+key_name+" " |
| 127 | msg = Message(nick=self.fw.config['nick'], text=cmd, key_name=key_name) |
| 128 | self.fw.send_asynchronously(msg,max_delay=0,num_tx=3,relay=True) |
| 129 | self.fw.scroller.print(group+"you> "+msg.text) |
| 130 | self.fw.refresh_view() |
| 131 | |
| 132 | def handle_bool_setting(self,field,descr,argv,argc,send_reply): |
| 133 | if argc > 2: return False |
no test coverage detected