Commit f797d135 authored by Matt Bell's avatar Matt Bell Committed by Juan Batiz-Benet

core/commands2: Added function to generate a 'commands' command for a root

parent fd8b1930
......@@ -11,23 +11,27 @@ type Command struct {
Subcommands []Command
}
var commandsCmd = &cmds.Command{
Description: "List all available commands.",
Help: `Lists all available commands (and subcommands) and exits.
`,
Run: func(req cmds.Request) (interface{}, error) {
root := outputCommand("ipfs", Root)
return &root, nil
},
Marshallers: map[cmds.EncodingType]cmds.Marshaller{
cmds.Text: func(res cmds.Response) ([]byte, error) {
v := res.Output().(*Command)
s := formatCommand("", v)
return []byte(s), nil
// CommandsCmd takes in a root command,
// and returns a command that lists the subcommands in that root
func CommandsCmd(root *cmds.Command) *cmds.Command {
return &cmds.Command{
Description: "List all available commands.",
Help: `Lists all available commands (and subcommands) and exits.
`,
Run: func(req cmds.Request) (interface{}, error) {
root := outputCommand("ipfs", root)
return &root, nil
},
Marshallers: map[cmds.EncodingType]cmds.Marshaller{
cmds.Text: func(res cmds.Response) ([]byte, error) {
v := res.Output().(*Command)
s := formatCommand("", v)
return []byte(s), nil
},
},
},
Type: &Command{},
Type: &Command{},
}
}
func outputCommand(name string, cmd *cmds.Command) Command {
......
......@@ -52,7 +52,7 @@ Plumbing commands:
var rootSubcommands = map[string]*cmds.Command{
"cat": catCmd,
"ls": lsCmd,
"commands": commandsCmd,
"commands": CommandsCmd(Root),
"name": nameCmd,
"add": addCmd,
"log": logCmd,
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment