From f1a441f7fa50f78666618981bccbef551286097b Mon Sep 17 00:00:00 2001 From: Sasha Levin Date: Fri, 13 Jan 2012 11:42:05 +0200 Subject: [PATCH] kvm tools: Improve 'lkvm sandbox' syntax This patch adds the possibility to run commands using the default parameter in 'lkvm sandbox'. For example, a user would now be able to run: 'lkvm sandbox firefox' And have a sandboxed firefox instance start in the guest. For commands with parameters, we still need to use dashdash to pass the parameters (similar to 'git bisect run'). For example: 'lkvm sandbox -- ls -al /bin Suggested-by: Ingo Molnar Signed-off-by: Sasha Levin Signed-off-by: Pekka Enberg --- tools/kvm/builtin-run.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c index 249cf8200c40..802449ce1e8c 100644 --- a/tools/kvm/builtin-run.c +++ b/tools/kvm/builtin-run.c @@ -114,6 +114,7 @@ static const char * const run_usage[] = { }; enum { + KVM_RUN_DEFAULT, KVM_RUN_SANDBOX, }; @@ -904,16 +905,27 @@ int kvm_cmd_run(int argc, const char **argv, const char *prefix) } } - if (kernel_filename) { + if ((kvm_run_wrapper == KVM_RUN_DEFAULT && kernel_filename) || + (kvm_run_wrapper == KVM_RUN_SANDBOX && sandbox)) { fprintf(stderr, "Cannot handle parameter: " "%s\n", argv[0]); usage_with_options(run_usage, options); return EINVAL; } - /* first unhandled parameter is treated as a kernel - image - */ - kernel_filename = argv[0]; + if (kvm_run_wrapper == KVM_RUN_SANDBOX) { + /* + * first unhandled parameter is treated as + * sandbox command + */ + sandbox = DEFAULT_SANDBOX_FILENAME; + kvm_run_write_sandbox_cmd(argv, argc); + } else { + /* + * first unhandled parameter is treated as a kernel + * image + */ + kernel_filename = argv[0]; + } argv++; argc--; } -- 2.39.5