@cryptotaxi247 / kubo / commits / b8bc26a70

WIP almost working ipfs add

License: MIT Signed-off-by: Łukasz Magiera <magik6k@gmail.com>

Łukasz Magiera committed Mar 4, 2019 at 15:21 UTC b8bc26a700037366b22b857fe05c54f0068312bd
3 files changed +24 -3
core/commands/add.go
+18 -2
@@ -185,6 +185,22 @@ You can now check what blocks have been created by:
185
186 events := make(chan interface{}, adderOutChanSize)
187
188 + var toadd files.Node = req.Files
189 + addName := ""
190 + if !wrap {
191 + it := req.Files.Entries()
192 + if !it.Next() {
193 + err := it.Err()
194 + if err == nil {
195 + return fmt.Errorf("expected a file argument")
196 + }
197 + return err
198 + }
199 +
200 + addName = it.Name()
201 + toadd = it.Node()
202 + }
203 +
204 opts := []options.UnixfsAddOption{
205 options.Unixfs.Hash(hashFunCode),
206
@@ -198,13 +214,13 @@ You can now check what blocks have been created by:
214 options.Unixfs.FsCache(fscache),
215 options.Unixfs.Nocopy(nocopy),
216
201 - options.Unixfs.Wrap(wrap),
217 options.Unixfs.Hidden(hidden),
218 options.Unixfs.StdinName(pathName),
219
220 options.Unixfs.Progress(progress),
221 options.Unixfs.Silent(silent),
222 options.Unixfs.Events(events),
223 + options.Unixfs.BaseName(addName),
224 }
225
226 if cidVerSet {
@@ -224,7 +240,7 @@ You can now check what blocks have been created by:
240 var err error
241 defer func() { errCh <- err }()
242 defer close(events)
227 - _, err = api.Unixfs().Add(req.Context, req.Files, opts...)
243 + _, err = api.Unixfs().Add(req.Context, toadd, opts...)
244 }()
245
246 for event := range events {
core/coreapi/unixfs.go
+1
@@ -94,6 +94,7 @@ func (api *UnixfsAPI) Add(ctx context.Context, files files.Node, opts ...options
94 fileAdder.RawLeaves = settings.RawLeaves
95 fileAdder.NoCopy = settings.NoCopy
96 fileAdder.Name = settings.StdinName
97 + fileAdder.BaseName = settings.BaseName
98 fileAdder.CidBuilder = prefix
99 fileAdder.TopHidden = settings.TopHidden
100
core/coreunix/add.go
+5 -1
@@ -75,6 +75,7 @@ type Adder struct {
75 Silent bool
76 Wrap bool
77 Name string
78 + BaseName string
79 NoCopy bool
80 Chunker string
81 root ipld.Node
@@ -230,6 +231,9 @@ func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error {
231
232 func (adder *Adder) addNode(node ipld.Node, path string) error {
233 // patch it into the root
234 + if adder.BaseName != "" {
235 + path = gopath.Join(adder.BaseName, path)
236 + }
237 if path == "" {
238 path = node.Cid().String()
239 }
@@ -351,7 +355,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
355 return nil, err
356 }
357
354 - if err := outputDagnode(adder.Out, "", nd); err != nil {
358 + if err := outputDagnode(adder.Out, adder.BaseName, nd); err != nil {
359 return nil, err
360 }
361 }