Commit 86f0aac8 authored by Brian Tiger Chow's avatar Brian Tiger Chow Committed by Juan Batiz-Benet

refac(commands2/pin) loop

parent 353cb399
......@@ -5,6 +5,8 @@ import (
"fmt"
cmds "github.com/jbenet/go-ipfs/commands"
"github.com/jbenet/go-ipfs/core"
"github.com/jbenet/go-ipfs/merkledag"
)
var pinCmd = &cmds.Command{
......@@ -35,27 +37,17 @@ var pinCmd = &cmds.Command{
}
}*/
paths := make([]string, 0)
for _, arg := range req.Arguments() {
path, ok := arg.(string)
if !ok {
res.SetError(errors.New("cast error"), cmds.ErrNormal)
return
}
dagnode, err := n.Resolver.ResolvePath(path)
if err != nil {
res.SetError(fmt.Errorf("pin error: %v", err), cmds.ErrNormal)
return
paths = append(paths, path)
}
err = n.Pinning.Pin(dagnode, recursive)
if err != nil {
res.SetError(fmt.Errorf("pin: %v", err), cmds.ErrNormal)
return
}
}
err := n.Pinning.Flush()
_, err := pin(n, paths, recursive)
if err != nil {
res.SetError(err, cmds.ErrNormal)
}
......@@ -107,3 +99,30 @@ var unpinCmd = &cmds.Command{
// TODO: create some output to show what got unpinned
},
}
func pin(n *core.IpfsNode, paths []string, recursive bool) ([]*merkledag.Node, error) {
dagnodes := make([]*merkledag.Node, 0)
for _, path := range paths {
dagnode, err := n.Resolver.ResolvePath(path)
if err != nil {
return nil, fmt.Errorf("pin error: %v", err)
}
dagnodes = append(dagnodes, dagnode)
}
for _, dagnode := range dagnodes {
err := n.Pinning.Pin(dagnode, recursive)
if err != nil {
return nil, fmt.Errorf("pin: %v", err)
}
}
err := n.Pinning.Flush()
if err != nil {
return nil, err
}
return dagnodes, nil
}
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