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 {