]> git.karo-electronics.de Git - karo-tx-linux.git/blob - tools/kvm/builtin-help.c
Merge branch 'linus'
[karo-tx-linux.git] / tools / kvm / builtin-help.c
1 #include <stdio.h>
2 #include <string.h>
3
4 /* user defined headers */
5 #include <common-cmds.h>
6
7 #include <kvm/util.h>
8 #include <kvm/kvm-cmd.h>
9 #include <kvm/builtin-help.h>
10 #include <kvm/kvm.h>
11
12
13 const char kvm_usage_string[] =
14         "lkvm COMMAND [ARGS]";
15
16 const char kvm_more_info_string[] =
17         "See 'lkvm help COMMAND' for more information on a specific command.";
18
19
20 static void list_common_cmds_help(void)
21 {
22         unsigned int i, longest = 0;
23
24         for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
25                 if (longest < strlen(common_cmds[i].name))
26                         longest = strlen(common_cmds[i].name);
27         }
28
29         puts(" The most commonly used lkvm commands are:");
30         for (i = 0; i < ARRAY_SIZE(common_cmds); i++) {
31                 printf("   %-*s   ", longest, common_cmds[i].name);
32                 puts(common_cmds[i].help);
33         }
34 }
35
36 static void kvm_help(void)
37 {
38         printf("\n To start a simple non-privileged shell run '%s run'\n\n"
39                 "usage: %s\n\n", KVM_BINARY_NAME, kvm_usage_string);
40         list_common_cmds_help();
41         printf("\n %s\n\n", kvm_more_info_string);
42 }
43
44
45 static void help_cmd(const char *cmd)
46 {
47         struct cmd_struct *p;
48         p = kvm_get_command(kvm_commands, cmd);
49         if (!p)
50                 kvm_help();
51         else if (p->help)
52                 p->help();
53 }
54
55 int kvm_cmd_help(int argc, const char **argv, const char *prefix)
56 {
57         if (!argv || !*argv) {
58                 kvm_help();
59                 return 0;
60         }
61         help_cmd(argv[0]);
62         return 0;
63 }