@cryptotaxi247 / kubo / commits / e0ba14c0e

cmds2: use cmdDetails on level cmds

Juan Batiz-Benet committed Nov 13, 2014 at 22:53 UTC e0ba14c0ebc0629360f1d0dff7600e4da23113ed
3 files changed +18 -11
cmd/ipfs2/ipfs.go
+2
@@ -78,5 +78,7 @@ var cmdDetailsMap = map[*cmds.Command]cmdDetails{
78 commands.DiagCmd: cmdDetails{cannotRunOnClient: true},
79 commands.VersionCmd: cmdDetails{doesNotUseRepo: true},
80 commands.UpdateCmd: cmdDetails{cannotRunOnDaemon: true},
81 + commands.UpdateCheckCmd: cmdDetails{},
82 + commands.UpdateLogCmd: cmdDetails{},
83 commands.LogCmd: cmdDetails{cannotRunOnClient: true},
84 }
cmd/ipfs2/main.go
+12 -7
@@ -267,14 +267,19 @@ func commandShouldRunOnDaemon(req cmds.Request, root *cmds.Command) (bool, error
267 return false, nil
268 }
269
270 - cmd, found := root.Subcommands[path[0]]
271 - if !found {
272 - return false, fmt.Errorf("subcommand %s should be in root", path[0])
273 - }
270 + var details cmdDetails
271 + // find the last command in path that has a cmdDetailsMap entry
272 + cmd := root
273 + for _, cmp := range path {
274 + var found bool
275 + cmd, found = cmd.Subcommands[cmp]
276 + if !found {
277 + return false, fmt.Errorf("subcommand %s should be in root", cmp)
278 + }
279
275 - details, found := cmdDetailsMap[cmd]
276 - if !found {
277 - details = cmdDetails{} // defaults
280 + if cmdDetails, found := cmdDetailsMap[cmd]; found {
281 + details = cmdDetails
282 + }
283 }
284 log.Debugf("cmd perms for +%v: %s", path, details.String())
285
core/commands2/update.go
+4 -4
@@ -29,8 +29,8 @@ var UpdateCmd = &cmds.Command{
29 },
30 Type: &UpdateOutput{},
31 Subcommands: map[string]*cmds.Command{
32 - "check": updateCheckCmd,
33 - "log": updateLogCmd,
32 + "check": UpdateCheckCmd,
33 + "log": UpdateLogCmd,
34 },
35 Marshalers: cmds.MarshalerMap{
36 cmds.Text: func(res cmds.Response) ([]byte, error) {
@@ -47,7 +47,7 @@ var UpdateCmd = &cmds.Command{
47 },
48 }
49
50 -var updateCheckCmd = &cmds.Command{
50 +var UpdateCheckCmd = &cmds.Command{
51 Helptext: cmds.HelpText{
52 Tagline: "Checks if updates are available",
53 ShortDescription: `
@@ -80,7 +80,7 @@ Nothing will be downloaded or installed.
80 },
81 }
82
83 -var updateLogCmd = &cmds.Command{
83 +var UpdateLogCmd = &cmds.Command{
84 Helptext: cmds.HelpText{
85 Tagline: "List the changelog for the latest versions of IPFS",
86 ShortDescription: "This command is not yet implemented.",