Address concerns in PR
Jeromy committed
Oct 30, 2014 at 06:23 UTC
71ac117546689a0e9f1ff21c18774b57203c5fb4
2 files changed
+14
-13
core/commands/add.go
+11
-1
@@ -10,8 +10,11 @@ import (
10
11
"github.com/jbenet/go-ipfs/core"
12
"github.com/jbenet/go-ipfs/importer"
13
+ "github.com/jbenet/go-ipfs/importer/chunk"
14
dag "github.com/jbenet/go-ipfs/merkledag"
15
+ "github.com/jbenet/go-ipfs/pin"
16
ft "github.com/jbenet/go-ipfs/unixfs"
17
+ uio "github.com/jbenet/go-ipfs/unixfs/io"
18
)
19
20
// Error indicating the max depth has been exceded.
@@ -87,7 +90,14 @@ func addDir(n *core.IpfsNode, fpath string, depth int, out io.Writer) (*dag.Node
90
}
91
92
func addFile(n *core.IpfsNode, fpath string, depth int, out io.Writer) (*dag.Node, error) {
90
- root, err := importer.NewDagFromFileWServer(fpath, n.DAG, n.Pinning)
93
+ dw := uio.NewDagWriter(n.DAG, chunk.DefaultSplitter)
94
+ mp, ok := n.Pinning.(pin.ManualPinner)
95
+ if !ok {
96
+ return nil, errors.New("invalid pinner type! expected manual pinner")
97
+ }
98
+ dw.Pinner = mp
99
+
100
+ root, err := importer.ImportFileDag(fpath, dw)
101
if err != nil {
102
return nil, err
103
}
importer/importer.go
+3
-12
@@ -1,14 +1,12 @@
1
package importer
2
3
import (
4
- "errors"
4
"fmt"
5
"io"
6
"os"
7
8
"github.com/jbenet/go-ipfs/importer/chunk"
9
dag "github.com/jbenet/go-ipfs/merkledag"
11
- "github.com/jbenet/go-ipfs/pin"
10
ft "github.com/jbenet/go-ipfs/unixfs"
11
uio "github.com/jbenet/go-ipfs/unixfs/io"
12
"github.com/jbenet/go-ipfs/util"
@@ -76,7 +74,7 @@ func NewDagFromFile(fpath string) (*dag.Node, error) {
74
return NewDagFromReader(f)
75
}
76
79
-func NewDagFromFileWServer(fpath string, dserv dag.DAGService, p pin.Pinner) (*dag.Node, error) {
77
+func ImportFileDag(fpath string, dw *uio.DagWriter) (*dag.Node, error) {
78
stat, err := os.Stat(fpath)
79
if err != nil {
80
return nil, err
@@ -92,17 +90,10 @@ func NewDagFromFileWServer(fpath string, dserv dag.DAGService, p pin.Pinner) (*d
90
}
91
defer f.Close()
92
95
- return NewDagFromReaderWServer(f, dserv, p)
93
+ return ImportReaderDag(f, dw)
94
}
95
98
-func NewDagFromReaderWServer(r io.Reader, dserv dag.DAGService, p pin.Pinner) (*dag.Node, error) {
99
- dw := uio.NewDagWriter(dserv, chunk.DefaultSplitter)
100
-
101
- mp, ok := p.(pin.ManualPinner)
102
- if !ok {
103
- return nil, errors.New("Needed to be passed a manual pinner!")
104
- }
105
- dw.Pinner = mp
96
+func ImportReaderDag(r io.Reader, dw *uio.DagWriter) (*dag.Node, error) {
97
_, err := io.Copy(dw, r)
98
if err != nil {
99
return nil, err