Pino Toscano
2014-Jun-02 19:24 UTC
[Libguestfs] [PATCH] fish: list also aliases in the guestfish help (RHBZ#1103877).
Output also the aliases (telling which function they refer to) in
`guestfish -h`, together with non-alias functions.
---
generator/fish.ml | 38 ++++++++++++++++++++++++++++++++++----
1 file changed, 34 insertions(+), 4 deletions(-)
diff --git a/generator/fish.ml b/generator/fish.ml
index db800ef..3f53ffa 100644
--- a/generator/fish.ml
+++ b/generator/fish.ml
@@ -31,6 +31,14 @@ open Prepopts
open C
open Events
+type func + | Function of string (* The description. *)
+ | Alias of string (* The function of which it is one the
+ * aliases.
+ *)
+
+let func_compare (n1, _) (n2, _) = compare n1 n2
+
let fish_functions_and_commands_sorted List.sort action_compare
(fish_functions_sorted @ fish_commands)
@@ -46,6 +54,21 @@ let get_aliases { fish_alias = fish_alias; non_c_aliases =
non_c_aliases } List.map (fun n -> replace_char n '_'
'-') non_c_aliases in
fish_alias @ non_c_aliases
+let all_functions_commands_and_aliases_sorted + let all + List.fold_right (
+ fun ({ name = name; shortdesc = shortdesc } as f) acc ->
+ let aliases = get_aliases f in
+ let aliases = List.filter (
+ fun x ->
+ Filename.check_suffix x "-opts" <> true
+ ) aliases in
+ let aliases = List.map (fun x -> x, Alias name) aliases in
+ let foo = (name, Function shortdesc) :: aliases in
+ foo @ acc
+ ) (fish_functions_sorted @ fish_commands) [] in
+ List.sort func_compare all
+
(* Generate a lot of different functions for guestfish. *)
let generate_fish_cmds () generate_header CStyle GPLv2plus;
@@ -179,11 +202,18 @@ Guestfish will prompt for these separately."
pr " printf (\" %%-16s %%s\\n\",
_(\"Command\"), _(\"Description\"));\n";
pr " list_builtin_commands ();\n";
List.iter (
- fun { name = name; shortdesc = shortdesc } ->
+ fun (name, f) ->
let name = replace_char name '_' '-' in
- pr " printf (\"%%-20s %%s\\n\", \"%s\",
_(\"%s\"));\n"
- name shortdesc
- ) fish_functions_and_commands_sorted;
+ match f with
+ | Function shortdesc ->
+ pr " printf (\"%%-20s %%s\\n\", \"%s\",
_(\"%s\"));\n"
+ name shortdesc
+ | Alias f ->
+ let f = replace_char f '_' '-' in
+ pr " printf (\"%%-20s \", \"%s\");\n"
name;
+ pr " printf (_(\"alias for '%%s'\"),
\"%s\");\n" f;
+ pr " putchar ('\\n');\n"
+ ) all_functions_commands_and_aliases_sorted;
pr " printf (\" %%s\\n\",";
pr " _(\"Use -h <cmd> / help <cmd> to show
detailed help for a command.\"));\n";
pr "}\n";
--
1.9.3
Richard W.M. Jones
2014-Jun-10 10:11 UTC
Re: [Libguestfs] [PATCH] fish: list also aliases in the guestfish help (RHBZ#1103877).
On Mon, Jun 02, 2014 at 09:24:35PM +0200, Pino Toscano wrote:> Output also the aliases (telling which function they refer to) in > `guestfish -h`, together with non-alias functions.Thanks - ACKed and pushed. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-top is 'top' for virtual machines. Tiny program with many powerful monitoring features, net stats, disk stats, logging, etc. http://people.redhat.com/~rjones/virt-top