scripts/qmp-shell: move the REPL functionality into QMPShell

Instead of doing this in main, move it into the class itself. (This
makes it easier to put into the qemu.qmp package later by removing as
much as we can from the main() function.)

Signed-off-by: John Snow <jsnow@redhat.com>
Message-id: 20210607200649.1840382-23-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
John Snow 2021-06-07 16:06:29 -04:00
parent 1215a1fbef
commit ad4eebee00
1 changed files with 7 additions and 3 deletions

View File

@ -318,6 +318,12 @@ class QMPShell(qmp.QEMUMonitorProtocol):
return self._execute_cmd(cmdline)
def repl(self):
self.show_banner()
while self.read_exec_command():
yield
self.close()
class HMPShell(QMPShell):
def __init__(self, address, pretty=False, verbose=False):
@ -435,10 +441,8 @@ def main():
except OSError as err:
die(f"Couldn't connect to {args.qmp_server}: {err!s}")
qemu.show_banner()
while qemu.read_exec_command():
for _ in qemu.repl():
pass
qemu.close()
if __name__ == '__main__':