@cryptotaxi247 / kubo / commits / 353cb3992

refac(commands2/ls) split loop

@mappum

Brian Tiger Chow committed Nov 6, 2014 at 03:52 UTC 353cb39921ee8e2c13359e37cb3039d542d7dfba
1 file changed +19 -4
core/commands2/ls.go
+19 -4
@@ -1,9 +1,11 @@
1 package commands
2
3 import (
4 + "errors"
5 "fmt"
6
7 cmds "github.com/jbenet/go-ipfs/commands"
8 + merkledag "github.com/jbenet/go-ipfs/merkledag"
9 )
10
11 type Link struct {
@@ -27,18 +29,31 @@ var lsCmd = &cmds.Command{
29 Help: "TODO",
30 Run: func(res cmds.Response, req cmds.Request) {
31 node := req.Context().Node
30 - output := make([]Object, len(req.Arguments()))
32
32 - for i, arg := range req.Arguments() {
33 - path := arg.(string)
33 + paths := make([]string, 0)
34 + for _, arg := range req.Arguments() {
35 + path, ok := arg.(string)
36 + if !ok {
37 + res.SetError(errors.New("cast error"), cmds.ErrNormal)
38 + return
39 + }
40 + paths = append(paths, path)
41 + }
42 +
43 + dagnodes := make([]*merkledag.Node, 0)
44 + for _, path := range paths {
45 dagnode, err := node.Resolver.ResolvePath(path)
46 if err != nil {
47 res.SetError(err, cmds.ErrNormal)
48 return
49 }
50 + dagnodes = append(dagnodes, dagnode)
51 + }
52
53 + output := make([]Object, len(req.Arguments()))
54 + for i, dagnode := range dagnodes {
55 output[i] = Object{
41 - Hash: path,
56 + Hash: paths[i],
57 Links: make([]Link, len(dagnode.Links)),
58 }
59 for j, link := range dagnode.Links {