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 <[email protected]>
Signed-off-by: Sasha Levin <[email protected]>
---
 tools/kvm/builtin-run.c |   22 +++++++++++++++++-----
 1 files changed, 17 insertions(+), 5 deletions(-)

diff --git a/tools/kvm/builtin-run.c b/tools/kvm/builtin-run.c
index 249cf82..7219779 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--;
                }
-- 
1.7.8.3

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to