mirror of https://github.com/xemu-project/xemu.git
qmp-shell: learn to send commands with quoted arguments
Use shlex to split the CLI command, respecting quoted arguments, and also comments. This allows to call for ex: (QEMU) human-monitor-command command-line="screendump /dev/null" {"execute": "human-monitor-command", "arguments": {"command-line": "screendump /dev/null"}} Signed-off-by: Marc-André Lureau <marcandre.lureau@redhat.com> Message-Id: <20180326150916.9602-3-marcandre.lureau@redhat.com> Reviewed-by: Eduardo Habkost <ehabkost@redhat.com> Signed-off-by: Markus Armbruster <armbru@redhat.com>
This commit is contained in:
parent
38441756b7
commit
fcfab75410
|
@ -74,6 +74,7 @@ import sys
|
||||||
import os
|
import os
|
||||||
import errno
|
import errno
|
||||||
import atexit
|
import atexit
|
||||||
|
import shlex
|
||||||
|
|
||||||
class QMPCompleter(list):
|
class QMPCompleter(list):
|
||||||
def complete(self, text, state):
|
def complete(self, text, state):
|
||||||
|
@ -219,7 +220,7 @@ class QMPShell(qmp.QEMUMonitorProtocol):
|
||||||
|
|
||||||
< command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
|
< command-name > [ arg-name1=arg1 ] ... [ arg-nameN=argN ]
|
||||||
"""
|
"""
|
||||||
cmdargs = cmdline.split()
|
cmdargs = shlex.split(cmdline)
|
||||||
|
|
||||||
# Transactional CLI entry/exit:
|
# Transactional CLI entry/exit:
|
||||||
if cmdargs[0] == 'transaction(':
|
if cmdargs[0] == 'transaction(':
|
||||||
|
|
Loading…
Reference in New Issue