WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-changelog

[Xen-changelog] [xen-unstable] xl: use help table to describe command he

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] xl: use help table to describe command help information
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Tue, 11 May 2010 06:45:12 -0700
Delivery-date: Tue, 11 May 2010 06:47:39 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1273577846 -3600
# Node ID 2b5e14e4c5e57b0064d1c0415d9c4629bd0aac9b
# Parent  60b3417b1499a3cbe28a88d286f1b3c2ac01d5fa
xl: use help table to describe command help information

This patch generate a help table to describe command help
information.

Signed-off-by: Wei Yongjun <yjwei@xxxxxxxxxxxxxx>
Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxx>
Acked-by: Stefano Stabellini <stefano.stabellini@xxxxxxxxxxxxx>
---
 tools/libxl/xl_cmdimpl.c  |  122 +++---------------------------
 tools/libxl/xl_cmdtable.c |  184 +++++++++++++++++++++++++++++++++++++++-------
 tools/libxl/xl_cmdtable.h |    2 
 3 files changed, 173 insertions(+), 135 deletions(-)

diff -r 60b3417b1499 -r 2b5e14e4c5e5 tools/libxl/xl_cmdimpl.c
--- a/tools/libxl/xl_cmdimpl.c  Tue May 11 11:23:54 2010 +0100
+++ b/tools/libxl/xl_cmdimpl.c  Tue May 11 12:37:26 2010 +0100
@@ -1170,114 +1170,20 @@ void help(char *command)
         for (i = 0; i < cmdtable_len; i++)
             printf(" %-20s%s\n",
                    cmd_table[i].cmd_name, cmd_table[i].cmd_desc);
-    } else if(!strcmp(command, "create")) {
-        printf("Usage: xl create <ConfigFile> [options] [vars]\n\n");
-        printf("Create a domain based on <ConfigFile>.\n\n");
-        printf("Options:\n\n");
-        printf("-h                     Print this help.\n");
-        printf("-p                     Leave the domain paused after it is 
created.\n");
-        printf("-c                     Connect to the console after the domain 
is created.\n");
-        printf("-d                     Enable debug messages.\n");
-        printf("-e                     Do not wait in the background for the 
death of the domain.\n");
-    } else if(!strcmp(command, "list")) {
-        printf("Usage: xl list [-v] [Domain]\n\n");
-        printf("List information about all/some domains.\n\n");
-    } else if(!strcmp(command, "pci-attach")) {
-        printf("Usage: xl pci-attach <Domain> <BDF> [Virtual Slot]\n\n");
-        printf("Insert a new pass-through pci device.\n\n");
-    } else if(!strcmp(command, "pci-detach")) {
-        printf("Usage: xl pci-detach <Domain> <BDF>\n\n");
-        printf("Remove a domain's pass-through pci device.\n\n");
-    } else if(!strcmp(command, "pci-list")) {
-        printf("Usage: xl pci-list <Domain>\n\n");
-        printf("List pass-through pci devices for a domain.\n\n");
-    } else if(!strcmp(command, "pause")) {
-        printf("Usage: xl pause <Domain>\n\n");
-        printf("Pause execution of a domain.\n\n");
-    } else if(!strcmp(command, "unpause")) {
-        printf("Usage: xl unpause <Domain>\n\n");
-        printf("Unpause a paused domain.\n\n");
-    } else if(!strcmp(command, "save")) {
-        printf("Usage: xl save [options] <Domain> <CheckpointFile> 
[<ConfigFile>]\n\n");
-        printf("Save a domain state to restore later.\n\n");
-        printf("Options:\n\n");
-        printf("-h                     Print this help.\n");
-        printf("-c                     Leave domain running after creating the 
snapshot.\n");
-    } else if(!strcmp(command, "restore")) {
-        printf("Usage: xl restore [options] [<ConfigFile>] 
<CheckpointFile>\n\n");
-        printf("Restore a domain from a saved state.\n\n");
-        printf("Options:\n\n");
-        printf("-h                     Print this help.\n");
-        printf("-p                     Do not unpause domain after restoring 
it.\n");
-        printf("-e                     Do not wait in the background for the 
death of the domain.\n");
-        printf("-d                     Enable debug messages.\n");
-    } else if(!strcmp(command, "migrate")) {
-        printf("Usage: xl migrate [options] <Domain> <host>\n\n");
-        printf("Save a domain state to restore later.\n\n");
-        printf("Options:\n\n");
-        printf("-h                     Print this help.\n");
-        printf("-C <config>            Send <config> instead of config file 
from creation.\n");
-        printf("-s <sshcommand>        Use <sshcommand> instead of ssh.  
String will be passed to sh.  If empty, run <host> instead of ssh <host> xl 
migrate-receive [-d -e]\n");
-        printf("-e                     Do not wait in the background (on 
<host>) for the death of the domain.\n");
-    } else if(!strcmp(command, "migrate-receive")) {
-        printf("Usage: xl migrate-receive  - for internal use only");
-    } else if(!strcmp(command, "restore")) {
-        printf("Usage: xl restore [options] [<ConfigFile>] 
<CheckpointFile>\n\n");
-        printf("Restore a domain from a saved state.\n\n");
-        printf("Options:\n\n");
-        printf("-h                     Print this help.\n");
-        printf("-O                     Old (configless) xl save format.\n");
-        printf("-p                     Do not unpause domain after restoring 
it.\n");
-        printf("-e                     Do not wait in the background for the 
death of the domain.\n");
-    } else if(!strcmp(command, "destroy")) {
-        printf("Usage: xl destroy <Domain>\n\n");
-        printf("Terminate a domain immediately.\n\n");
-    } else if (!strcmp(command, "console")) {
-        printf("Usage: xl console <Domain>\n\n");
-        printf("Attach to domain's console.\n\n");
-    } else if (!strcmp(command, "cd-insert")) {
-        printf("Usage: xl cd-insert <Domain> <VirtualDevice> <type:path>\n\n");
-        printf("Insert a cdrom into a guest's cd drive.\n\n");
-    } else if (!strcmp(command, "cd-eject")) {
-        printf("Usage: xl cd-eject <Domain> <VirtualDevice>\n\n");
-        printf("Eject a cdrom from a guest's cd drive.\n\n");
-    } else if (!strcmp(command, "mem-set")) {
-        printf("Usage: xl mem-set <Domain> <MemKB>\n\n");
-        printf("Set the current memory usage for a domain.\n\n");
-    } else if (!strcmp(command, "button-press")) {
-        printf("Usage: xl button-press <Domain> <Button>\n\n");
-        printf("Indicate <Button> press to a domain.\n");
-        printf("<Button> may be 'power' or 'sleep'.\n\n");
-    } else if (!strcmp(command, "vcpu-list")) {
-        printf("Usage: xl vcpu-list [Domain, ...]\n\n");
-        printf("List the VCPUs for all/some domains.\n\n");
-    } else if (!strcmp(command, "vcpu-pin")) {
-        printf("Usage: xl vcpu-pin <Domain> <VCPU|all> <CPUs|all>\n\n");
-        printf("Set which CPUs a VCPU can use.\n\n");
-    } else if (!strcmp(command, "vcpu-set")) {
-        printf("Usage: xl vcpu-set <Domain> <vCPUs>\n\n");
-        printf("Set the number of active VCPUs for allowed for the 
domain.\n\n");
-    } else if(!strcmp(command, "info")) {
-        printf("Usage: xl info\n\n");
-        printf("Get information about Xen host.\n\n");
-    } else if (!strcmp(command, "sched-credit")) {
-        printf("Usage: xl sched-credit [-d <Domain> 
[-w[=WEIGHT]|-c[=CAP]]]\n\n");
-        printf("Get/set credit scheduler parameters.\n");
-        printf("  -d DOMAIN, --domain=DOMAIN     Domain to modify\n");
-        printf("  -w WEIGHT, --weight=WEIGHT     Weight (int)\n");
-        printf("  -c CAP, --cap=CAP              Cap (int)\n");
-    } else if (!strcmp(command, "domid")) {
-        printf("Usage: xl domid <DomainName>\n\n");
-        printf("Convert a domain name to domain id.\n");
-    } else if (!strcmp(command, "domname")) {
-        printf("Usage: xl domname <DomainId>\n\n");
-        printf("Convert a domain id to domain name.\n");
-    } else if (!strcmp(command, "rename")) {
-        printf("Usage: xl rename <Domain> <NewDomainName>\n\n");
-        printf("Rename a domain.\n");
-    } else if (!strcmp(command, "trigger")) {
-        printf("Usage: xm trigger <Domain> <nmi|reset|init|power|sleep> 
[<VCPU>]\n\n");
-        printf("Send a trigger to a domain.\n");
+    } else {
+        for (i = 0; i < cmdtable_len; i++)
+            if (!strcmp(command, cmd_table[i].cmd_name))
+                break;
+        if (i == cmdtable_len) {
+            printf("command not implemented\n");
+        } else {
+            printf("Usage: xl %s %s\n\n%s.\n\n",
+                   cmd_table[i].cmd_name,
+                   cmd_table[i].cmd_usage,
+                   cmd_table[i].cmd_desc);
+            if (cmd_table[i].cmd_option)
+            printf("Options:\n\n%s\n", cmd_table[i].cmd_option);
+        }
     }
 }
 
diff -r 60b3417b1499 -r 2b5e14e4c5e5 tools/libxl/xl_cmdtable.c
--- a/tools/libxl/xl_cmdtable.c Tue May 11 11:23:54 2010 +0100
+++ b/tools/libxl/xl_cmdtable.c Tue May 11 12:37:26 2010 +0100
@@ -15,33 +15,163 @@
 #include "xl_cmdtable.h"
 
 struct cmd_spec cmd_table[] = {
-    { "create", &main_create, "create a domain from config file <filename>" },
-    { "list", &main_list, "list information about all domains" },
-    { "destroy", &main_destroy, "terminate a domain immediately" },
-    { "pci-attach", &main_pciattach, "insert a new pass-through pci device" },
-    { "pci-detach", &main_pcidetach, "remove a domain's pass-through pci 
device" },
-    { "pci-list", &main_pcilist, "list pass-through pci devices for a domain" 
},
-    { "pause", &main_pause, "pause execution of a domain" },
-    { "unpause", &main_unpause, "unpause a paused domain" },
-    { "console", &main_console, "attach to domain's console" },
-    { "save", &main_save, "save a domain state to restore later" },
-    { "migrate", &main_migrate, "save a domain state to restore later" },
-    { "restore", &main_restore, "restore a domain from a saved state" },
-    { "migrate-receive", &main_migrate_receive, "restore a domain from a saved 
state" },
-    { "cd-insert", &main_cd_insert, "insert a cdrom into a guest's cd drive" },
-    { "cd-eject", &main_cd_eject, "eject a cdrom from a guest's cd drive" },
-    { "mem-set", &main_memset, "set the current memory usage for a domain" },
-    { "button-press", &main_button_press, "indicate an ACPI button press to 
the domain" },
-    { "vcpu-list", &main_vcpulist, "list the VCPUs for all/some domains" },
-    { "vcpu-pin", &main_vcpupin, "set which CPUs a VCPU can use" },
-    { "vcpu-set", &main_vcpuset, "set the number of active VCPUs allowed for 
the domain" },
-    { "list-vm", &main_list_vm, "list the VMs,without DOM0" },
-    { "info", &main_info, "get information about Xen host" },
-    { "sched-credit", &main_sched_credit, "get/set credit scheduler 
parameters" },
-    { "domid", &main_domid, "convert a domain name to domain id"},
-    { "domname", &main_domname, "convert a domain id to domain name"},
-    { "rename", &main_rename, "rename a domain"},
-    { "trigger", &main_trigger, "send a trigger to a domain"},
+    { "create",
+      &main_create,
+      "Create a domain from config file <filename>",
+      "<ConfigFile> [options] [vars]",
+      "-h  Print this help.\n"
+      "-p  Leave the domain paused after it is created.\n"
+      "-c  Connect to the console after the domain is created.\n"
+      "-d  Enable debug messages.\n"
+      "-e  Do not wait in the background for the death of the domain."
+    },
+    { "list",
+      &main_list,
+      "List information about all/some domains",
+      "[-v] [Domain]",
+    },
+    { "destroy",
+      &main_destroy,
+      "Terminate a domain immediately",
+      "<Domain>",
+    },
+    { "pci-attach",
+      &main_pciattach,
+      "Insert a new pass-through pci device",
+      "<Domain> <BDF> [Virtual Slot]",
+    },
+    { "pci-detach",
+      &main_pcidetach,
+      "Remove a domain's pass-through pci device",
+      "<Domain> <BDF>",
+    },
+    { "pci-list",
+      &main_pcilist,
+      "List pass-through pci devices for a domain",
+      "<Domain>",
+    },
+    { "pause",
+      &main_pause,
+      "Pause execution of a domain",
+      "<Domain>",
+    },
+    { "unpause",
+      &main_unpause,
+      "Unpause a paused domain",
+      "<Domain>",
+    },
+    { "console",
+      &main_console,
+      "Attach to domain's console",
+      "<Domain>",
+    },
+    { "save",
+      &main_save,
+      "Save a domain state to restore later",
+      "[options] <Domain> <CheckpointFile> [<ConfigFile>]",
+      "-h  Print this help.\n"
+      "-c  Leave domain running after creating the snapshot."
+    },
+    { "migrate",
+      &main_migrate,
+      "Save a domain state to restore later",
+      "[options] <Domain> <host>",
+      "-h              Print this help.\n"
+      "-C <config>     Send <config> instead of config file from creation.\n"
+      "-s <sshcommand> Use <sshcommand> instead of ssh.  String will be 
passed\n"
+      "                to sh. If empty, run <host> instead of ssh <host> xl\n"
+      "                migrate-receive [-d -e]\n"
+      "-e              Do not wait in the background (on <host>) for the 
death\n"
+      "                of the domain."
+    },
+    { "restore",
+      &main_restore,
+      "Restore a domain from a saved state",
+      "[options] [<ConfigFile>] <CheckpointFile>",
+      "-h  Print this help.\n"
+      "-p  Do not unpause domain after restoring it.\n"
+      "-e  Do not wait in the background for the death of the domain.\n"
+      "-d  Enable debug messages."
+    },
+    { "migrate-receive",
+      &main_migrate_receive,
+      "Restore a domain from a saved state",
+      "- for internal use only",
+    },
+    { "cd-insert",
+      &main_cd_insert,
+      "Insert a cdrom into a guest's cd drive",
+      "<Domain> <VirtualDevice> <type:path>",
+    },
+    { "cd-eject",
+      &main_cd_eject,
+      "Eject a cdrom from a guest's cd drive",
+      "<Domain> <VirtualDevice>",
+    },
+    { "mem-set",
+      &main_memset,
+      "Set the current memory usage for a domain",
+      "<Domain> <MemKB>",
+    },
+    { "button-press",
+      &main_button_press,
+      "Indicate an ACPI button press to the domain",
+      "<Domain> <Button>",
+      "<Button> may be 'power' or 'sleep'."
+    },
+    { "vcpu-list",
+      &main_vcpulist,
+      "List the VCPUs for all/some domains",
+      "[Domain, ...]",
+    },
+    { "vcpu-pin",
+      &main_vcpupin,
+      "Set which CPUs a VCPU can use",
+      "<Domain> <VCPU|all> <CPUs|all>",
+    },
+    { "vcpu-set",
+      &main_vcpuset,
+      "Set the number of active VCPUs allowed for the domain",
+      "<Domain> <vCPUs>",
+    },
+    { "list-vm",
+      &main_list_vm,
+      "List the VMs,without DOM0",
+      "",
+    },
+    { "info",
+      &main_info,
+      "Get information about Xen host",
+      "",
+    },
+    { "sched-credit",
+      &main_sched_credit,
+      "Get/set credit scheduler parameters",
+      "[-d <Domain> [-w[=WEIGHT]|-c[=CAP]]]",
+      "-d DOMAIN, --domain=DOMAIN     Domain to modify\n"
+      "-w WEIGHT, --weight=WEIGHT     Weight (int)\n"
+      "-c CAP, --cap=CAP              Cap (int)"
+    },
+    { "domid",
+      &main_domid,
+      "Convert a domain name to domain id",
+      "<DomainName>",
+    },
+    { "domname",
+      &main_domname,
+      "Convert a domain id to domain name",
+      "<DomainId>",
+    },
+    { "rename",
+      &main_rename,
+      "Rename a domain",
+      "<Domain> <NewDomainName>",
+    },
+    { "trigger",
+      &main_trigger,
+      "Send a trigger to a domain",
+      "<Domain> <nmi|reset|init|power|sleep> [<VCPU>]",
+    },
 };
 
 int cmdtable_len = sizeof(cmd_table)/sizeof(struct cmd_spec);
diff -r 60b3417b1499 -r 2b5e14e4c5e5 tools/libxl/xl_cmdtable.h
--- a/tools/libxl/xl_cmdtable.h Tue May 11 11:23:54 2010 +0100
+++ b/tools/libxl/xl_cmdtable.h Tue May 11 12:37:26 2010 +0100
@@ -18,6 +18,8 @@ struct cmd_spec {
     char *cmd_name;
     int (*cmd_impl)(int argc, char **argv);
     char *cmd_desc;
+    char *cmd_usage;
+    char *cmd_option;
 };
 
 extern struct cmd_spec cmd_table[];

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] xl: use help table to describe command help information, Xen patchbot-unstable <=