Show flags in `ipfs commands`
License: MIT Signed-off-by: rht <rhtbot@gmail.com>
rht committed
Oct 17, 2015 at 08:52 UTC
4da824c954bd0351ec855083ad72d2873d0eb78c
1 file changed
+16
-2
core/commands/commands.go
+16
-2
@@ -18,6 +18,7 @@ import (
18
type Command struct {
19
Name string
20
Subcommands []Command
21
+ Options []cmds.Option
22
}
23
24
// CommandsCmd takes in a root command,
@@ -51,6 +52,7 @@ func cmd2outputCmd(name string, cmd *cmds.Command) Command {
52
output := Command{
53
Name: name,
54
Subcommands: make([]Command, len(cmd.Subcommands)),
55
+ Options: cmd.Options,
56
}
57
58
i := 0
@@ -67,9 +69,21 @@ func cmdPathStrings(cmd *Command) []string {
69
70
var recurse func(prefix string, cmd *Command)
71
recurse = func(prefix string, cmd *Command) {
70
- cmds = append(cmds, prefix+cmd.Name)
72
+ newPrefix := prefix + cmd.Name
73
+ cmds = append(cmds, newPrefix)
74
+ if prefix != "" {
75
+ for _, option := range cmd.Options {
76
+ optName := option.Names()[0]
77
+ if len(optName) == 1 {
78
+ optName = "-" + optName
79
+ } else {
80
+ optName = "--" + optName
81
+ }
82
+ cmds = append(cmds, newPrefix+" "+optName)
83
+ }
84
+ }
85
for _, sub := range cmd.Subcommands {
72
- recurse(prefix+cmd.Name+" ", &sub)
86
+ recurse(newPrefix+" ", &sub)
87
}
88
}
89