summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard Jones <rjones@redhat.com>2009-04-04 01:40:43 +0100
committerRichard Jones <rjones@redhat.com>2009-04-04 01:40:43 +0100
commit76f3ea8fb3318966c376bc6fbccbd5a81a9ec564 (patch)
tree015991e0071b040da5be87b2c9014dbae37c77cc /src
parent4567839859befc5aa9e1eee942dc2ba0701516e2 (diff)
downloadlibguestfs-76f3ea8fb3318966c376bc6fbccbd5a81a9ec564.tar.gz
libguestfs-76f3ea8fb3318966c376bc6fbccbd5a81a9ec564.tar.xz
libguestfs-76f3ea8fb3318966c376bc6fbccbd5a81a9ec564.zip
Command line, help.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/generator.ml25
1 files changed, 20 insertions, 5 deletions
diff --git a/src/generator.ml b/src/generator.ml
index b26ea3c1..75dcc79a 100755
--- a/src/generator.ml
+++ b/src/generator.ml
@@ -466,7 +466,8 @@ and generate_fish_cmds () =
(* list_commands function, which implements guestfish -h *)
pr "void list_commands (void)\n";
pr "{\n";
- pr " printf (\"%%-20s %%s\\n\", \"Command\", \"Description\");\n";
+ pr " printf (\" %%-16s %%s\\n\", \"Command\", \"Description\");\n";
+ pr " list_builtin_commands ();\n";
List.iter (
fun (name, _, _, shortdesc, _) ->
pr " printf (\"%%-20s %%s\\n\", \"%s\", \"%s\");\n"
@@ -499,10 +500,24 @@ and generate_fish_cmds () =
(" " ^ synopsis ^ "\n\n" ^ longdesc);
pr " else\n"
) functions;
- pr " {\n";
- pr " fprintf (stderr, \"%%s: command not known, use -h to list all commands\\n\", cmd);\n";
- pr " exit (1);\n";
- pr " }\n";
+ pr " display_builtin_command (cmd);\n";
+ pr "}\n";
+ pr "\n";
+
+ (* run_action function *)
+ pr "int run_action (const char *cmd, int argc, char *argv[])\n";
+ pr "{\n";
+ List.iter (
+ fun (name, style, _, _, _) ->
+ pr " if (strcasecmp (cmd, \"%s\") == 0)\n" name;
+ pr " printf (\"running %s ...\\n\");\n" name;
+ pr " else\n";
+ ) functions;
+ pr " {\n";
+ pr " fprintf (stderr, \"%%s: unknown command\\n\", cmd);\n";
+ pr " return -1;\n";
+ pr " }\n";
+ pr " return 0;\n";
pr "}\n";
pr "\n"