diff mbox series

[WIP,16/16] WIP: tools/xl: Enhance "vm-list" command

Message ID 7335199fc01d8dc6bf524cd764ed8e9107066380.1608663694.git.ehem+xen@m5p.com (mailing list archive)
State New, archived
Headers show
Series Addition of formatting options to `xl list` subcommands | expand

Commit Message

Elliott Mitchell Dec. 20, 2020, 7:43 a.m. UTC
Add several features to specify output.  Allow omitting potentially
unneeded lines and add argument for exact line format.

Signed-off-by: Elliott Mitchell <ehem+xen@m5p.com>
---
 tools/xl/xl_list.c | 16 +++++++++++++---
 1 file changed, 13 insertions(+), 3 deletions(-)
diff mbox series

Patch

diff --git a/tools/xl/xl_list.c b/tools/xl/xl_list.c
index 58809aa10b..ef44466017 100644
--- a/tools/xl/xl_list.c
+++ b/tools/xl/xl_list.c
@@ -500,18 +500,28 @@  int main_list(int argc, char **argv)
 int main_vm_list(int argc, char **argv)
 {
     const char *formatstr = "%u %5i %n\n";
+    bool dom0 = true;
+    bool header = true;
     int opt;
     static const struct option opts[] = {
         {"format", 0, 0, 'F'},
+        {"no-domain0", 0, 0, '0'},
+        {"no-header", 0, 0, 'H'},
     };
 
     libxl_vminfo *info;
     int nb_vm, i;
 
-    SWITCH_FOREACH_OPT(opt, "F:", opts, "vm-list", 0) {
+    SWITCH_FOREACH_OPT(opt, "0F:H", opts, "vm-list", 0) {
+    case '0':
+        dom0 = false;
+        break;
     case 'F':
         formatstr = optarg;
         break;
+    case 'H':
+        header = false;
+        break;
     }
 
     info = libxl_list_vm(ctx, &nb_vm);
@@ -521,10 +531,10 @@  int main_vm_list(int argc, char **argv)
         exit(EXIT_FAILURE);
     }
 
-    format(formats_vm, formatstr, NULL);
+    if (header) format(formats_vm, formatstr, NULL);
 
     for (i = 0; i < nb_vm; i++)
-        format(formats_vm, formatstr, info + i);
+        if (info[i].domid || dom0) format(formats_vm, formatstr, info + i);
 
     libxl_vminfo_list_free(info, nb_vm);