]> xenbits.xensource.com Git - libvirt.git/commitdiff
virsh: Do not make interactive mode default
authorErik Skultety <eskultet@redhat.com>
Fri, 4 Sep 2015 09:19:55 +0000 (11:19 +0200)
committerErik Skultety <eskultet@redhat.com>
Fri, 4 Sep 2015 12:12:34 +0000 (14:12 +0200)
Currently, we set interactive mode as default possibly reverting the
setting after we parse the command line arguments. There's nothing
particulary wrong with that, but a call to vshReadlineInit is performed
always in the global initializer just because the default mode is interactive.
Rather than moving vshReadlineInit call somewhere else (because another client
might want to implement interactive mode only), we could make the decision
if we're about to run in interactive mode once the command line is parsed.

tools/virsh.c

index 513c22cde2a47f609fff38daef55d3e0aeca5a03..bb12dec93d292641857e3c5602f3bc131dc373ab 100644 (file)
@@ -787,7 +787,9 @@ virshParseArgv(vshControl *ctl, int argc, char **argv)
         longindex = -1;
     }
 
-    if (argc > optind) {
+    if (argc == optind) {
+        ctl->imode = true;
+    } else {
         /* parse command */
         ctl->imode = false;
         if (argc - optind == 1) {
@@ -847,7 +849,6 @@ main(int argc, char **argv)
     memset(ctl, 0, sizeof(vshControl));
     memset(&virshCtl, 0, sizeof(virshControl));
     ctl->name = "virsh";        /* hardcoded name of the binary */
-    ctl->imode = true;          /* default is interactive mode */
     ctl->log_fd = -1;           /* Initialize log file descriptor */
     ctl->debug = VSH_DEBUG_DEFAULT;
     ctl->hooks = &hooks;