提交 196c6aa4 作者: Juan Batiz-Benet

Merge pull request #1127 from wking/add-single-reader

core/commands/add: Change add() to only accept a single reader
...@@ -213,23 +213,18 @@ remains to be implemented. ...@@ -213,23 +213,18 @@ remains to be implemented.
Type: AddedObject{}, Type: AddedObject{},
} }
func add(n *core.IpfsNode, readers []io.Reader) ([]*dag.Node, error) { func add(n *core.IpfsNode, reader io.Reader) (*dag.Node, error) {
dagnodes := make([]*dag.Node, 0) node, err := importer.BuildDagFromReader(reader, n.DAG, nil, chunk.DefaultSplitter)
if err != nil {
for _, reader := range readers { return nil, err
node, err := importer.BuildDagFromReader(reader, n.DAG, nil, chunk.DefaultSplitter)
if err != nil {
return nil, err
}
dagnodes = append(dagnodes, node)
} }
err := n.Pinning.Flush() err = n.Pinning.Flush()
if err != nil { if err != nil {
return nil, err return nil, err
} }
return dagnodes, nil return node, nil
} }
func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress bool, wrap bool) (*dag.Node, error) { func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress bool, wrap bool) (*dag.Node, error) {
...@@ -256,16 +251,16 @@ func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress b ...@@ -256,16 +251,16 @@ func addFile(n *core.IpfsNode, file files.File, out chan interface{}, progress b
return dagnode, nil return dagnode, nil
} }
dns, err := add(n, []io.Reader{reader}) dagnode, err := add(n, reader)
if err != nil { if err != nil {
return nil, err return nil, err
} }
log.Infof("adding file: %s", file.FileName()) log.Infof("adding file: %s", file.FileName())
if err := outputDagnode(out, file.FileName(), dns[len(dns)-1]); err != nil { if err := outputDagnode(out, file.FileName(), dagnode); err != nil {
return nil, err return nil, err
} }
return dns[len(dns)-1], nil // last dag node is the file. return dagnode, nil
} }
func addDir(n *core.IpfsNode, dir files.File, out chan interface{}, progress bool) (*dag.Node, error) { func addDir(n *core.IpfsNode, dir files.File, out chan interface{}, progress bool) (*dag.Node, error) {
......
...@@ -86,24 +86,23 @@ func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *merkle ...@@ -86,24 +86,23 @@ func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *merkle
return gopath.Join(k.String(), filename), dagnode, nil return gopath.Join(k.String(), filename), dagnode, nil
} }
func add(n *core.IpfsNode, readers []io.Reader) ([]*merkledag.Node, error) { func add(n *core.IpfsNode, reader io.Reader) (*merkledag.Node, error) {
mp, ok := n.Pinning.(pin.ManualPinner) mp, ok := n.Pinning.(pin.ManualPinner)
if !ok { if !ok {
return nil, errors.New("invalid pinner type! expected manual pinner") return nil, errors.New("invalid pinner type! expected manual pinner")
} }
dagnodes := make([]*merkledag.Node, 0)
for _, reader := range readers { node, err := importer.BuildDagFromReader(reader, n.DAG, mp, chunk.DefaultSplitter)
node, err := importer.BuildDagFromReader(reader, n.DAG, mp, chunk.DefaultSplitter) if err != nil {
if err != nil { return nil, err
return nil, err
}
dagnodes = append(dagnodes, node)
} }
err := n.Pinning.Flush()
err = n.Pinning.Flush()
if err != nil { if err != nil {
return nil, err return nil, err
} }
return dagnodes, nil
return node, nil
} }
func addNode(n *core.IpfsNode, node *merkledag.Node) error { func addNode(n *core.IpfsNode, node *merkledag.Node) error {
...@@ -125,12 +124,12 @@ func addFile(n *core.IpfsNode, file files.File) (*merkledag.Node, error) { ...@@ -125,12 +124,12 @@ func addFile(n *core.IpfsNode, file files.File) (*merkledag.Node, error) {
return addDir(n, file) return addDir(n, file)
} }
dns, err := add(n, []io.Reader{file}) dagnode, err := add(n, file)
if err != nil { if err != nil {
return nil, err return nil, err
} }
return dns[len(dns)-1], nil // last dag node is the file. return dagnode, nil
} }
func addDir(n *core.IpfsNode, dir files.File) (*merkledag.Node, error) { func addDir(n *core.IpfsNode, dir files.File) (*merkledag.Node, error) {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论