@cryptotaxi247 / kubo / commits / c5b81e918

coreapi: remove hidden file handling in add

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

Łukasz Magiera committed Mar 10, 2019 at 22:50 UTC c5b81e918f9326704d2e0a7602b932a4bfc63a6b
4 files changed +20 -43
core/commands/add.go
+16 -6
@@ -5,6 +5,7 @@ import (
5 "fmt"
6 "io"
7 "os"
8 + "path"
9 "strings"
10
11 "github.com/ipfs/go-ipfs/core/commands/cmdenv"
@@ -12,7 +13,8 @@ import (
13 cmdkit "github.com/ipfs/go-ipfs-cmdkit"
14 cmds "github.com/ipfs/go-ipfs-cmds"
15 coreiface "github.com/ipfs/interface-go-ipfs-core"
15 - options "github.com/ipfs/interface-go-ipfs-core/options"
16 + "github.com/ipfs/interface-go-ipfs-core/options"
17 + "github.com/ipfs/go-ipfs-files"
18 mh "github.com/multiformats/go-multihash"
19 pb "gopkg.in/cheggaaa/pb.v1"
20 )
@@ -160,7 +162,7 @@ You can now check what blocks have been created by:
162 trickle, _ := req.Options[trickleOptionName].(bool)
163 wrap, _ := req.Options[wrapOptionName].(bool)
164 hash, _ := req.Options[onlyHashOptionName].(bool)
163 - hidden, _ := req.Options[hiddenOptionName].(bool)
165 + //hidden, _ := req.Options[hiddenOptionName].(bool)
166 silent, _ := req.Options[silentOptionName].(bool)
167 chunker, _ := req.Options[chunkerOptionName].(string)
168 dopin, _ := req.Options[pinOptionName].(bool)
@@ -186,7 +188,7 @@ You can now check what blocks have been created by:
188 events := make(chan interface{}, adderOutChanSize)
189
190 var toadd files.Node = req.Files
189 - addName := ""
191 + name := ""
192 if !wrap {
193 it := req.Files.Entries()
194 if !it.Next() {
@@ -197,8 +199,12 @@ You can now check what blocks have been created by:
199 return err
200 }
201
200 - addName = it.Name()
202 toadd = it.Node()
203 + name = it.Name()
204 + }
205 + _, dir := toadd.(files.Directory)
206 + if !dir && pathName != "" {
207 + name = pathName
208 }
209
210 opts := []options.UnixfsAddOption{
@@ -214,13 +220,11 @@ You can now check what blocks have been created by:
220 options.Unixfs.FsCache(fscache),
221 options.Unixfs.Nocopy(nocopy),
222
217 - options.Unixfs.Hidden(hidden),
223 options.Unixfs.StdinName(pathName),
224
225 options.Unixfs.Progress(progress),
226 options.Unixfs.Silent(silent),
227 options.Unixfs.Events(events),
223 - options.Unixfs.BaseName(addName),
228 }
229
230 if cidVerSet {
@@ -254,6 +258,12 @@ You can now check what blocks have been created by:
258 h = enc.Encode(output.Path.Cid())
259 }
260
261 + if !dir && name != "" {
262 + output.Name = name
263 + } else {
264 + output.Name = path.Join(name, output.Name)
265 + }
266 +
267 res.Emit(&AddEvent{
268 Name: output.Name,
269 Hash: h,
core/coreapi/unixfs.go
-3
@@ -87,16 +87,13 @@ func (api *UnixfsAPI) Add(ctx context.Context, files files.Node, opts ...options
87 fileAdder.Out = settings.Events
88 fileAdder.Progress = settings.Progress
89 }
90 - fileAdder.Hidden = settings.Hidden
90 fileAdder.Wrap = settings.Wrap
91 fileAdder.Pin = settings.Pin && !settings.OnlyHash
92 fileAdder.Silent = settings.Silent
93 fileAdder.RawLeaves = settings.RawLeaves
94 fileAdder.NoCopy = settings.NoCopy
95 fileAdder.Name = settings.StdinName
97 - fileAdder.BaseName = settings.BaseName
96 fileAdder.CidBuilder = prefix
99 - fileAdder.TopHidden = settings.TopHidden
97
98 switch settings.Layout {
99 case options.BalancedLayout:
core/corehttp/gateway_test.go
-1
@@ -22,7 +22,6 @@ import (
22 files "github.com/ipfs/go-ipfs-files"
23 path "github.com/ipfs/go-path"
24 iface "github.com/ipfs/interface-go-ipfs-core"
25 - "github.com/ipfs/interface-go-ipfs-core/options"
25 nsopts "github.com/ipfs/interface-go-ipfs-core/options/namesys"
26 ci "github.com/libp2p/go-libp2p-crypto"
27 id "github.com/libp2p/go-libp2p/p2p/protocol/identify"
core/coreunix/add.go
+4 -33
@@ -50,7 +50,6 @@ func NewAdder(ctx context.Context, p pin.Pinner, bs bstore.GCLocker, ds ipld.DAG
50 dagService: ds,
51 bufferedDS: bufferedDS,
52 Progress: false,
53 - Hidden: true,
53 Pin: true,
54 Trickle: false,
55 Wrap: false,
@@ -67,15 +66,12 @@ type Adder struct {
66 bufferedDS *ipld.BufferedDAG
67 Out chan<- interface{}
68 Progress bool
70 - Hidden bool
71 - TopHidden bool
69 Pin bool
70 Trickle bool
71 RawLeaves bool
72 Silent bool
73 Wrap bool
74 Name string
78 - BaseName string
75 NoCopy bool
76 Chunker string
77 root ipld.Node
@@ -231,9 +227,6 @@ func (adder *Adder) outputDirs(path string, fsn mfs.FSNode) error {
227
228 func (adder *Adder) addNode(node ipld.Node, path string) error {
229 // patch it into the root
234 - if adder.BaseName != "" {
235 - path = gopath.Join(adder.BaseName, path)
236 - }
230 if path == "" {
231 path = node.Cid().String()
232 }
@@ -279,25 +272,8 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
272 }
273 }()
274
282 - d, dir := file.(files.Directory)
283 - if !dir || !adder.TopHidden {
284 - d = files.NewSliceDirectory([]files.DirEntry{
285 - files.FileEntry("", file),
286 - })
287 - }
288 -
289 -
290 - // Iterate over each top-level file and add individually. Otherwise the
291 - // single files.File f is treated as a directory, affecting hidden file
292 - // semantics.
293 - it := d.Entries()
294 - for it.Next() {
295 - if err := adder.addFileNode(it.Name(), it.Node(), true); err != nil {
296 - return nil, err
297 - }
298 - }
299 - if it.Err() != nil {
300 - return nil, it.Err()
275 + if err := adder.addFileNode("", file, true); err != nil {
276 + return nil, err
277 }
278
279 mr, err := adder.mfsRoot()
@@ -313,6 +289,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
289 return nil, err
290 }
291
292 + _, dir := file.(files.Directory)
293 var name string
294 if !adder.Wrap && !dir {
295 children, err := rootdir.ListNames(adder.ctx)
@@ -355,7 +332,7 @@ func (adder *Adder) AddAllAndPin(file files.Node) (ipld.Node, error) {
332 return nil, err
333 }
334
358 - if err := outputDagnode(adder.Out, adder.BaseName, nd); err != nil {
335 + if err := outputDagnode(adder.Out, "", nd); err != nil {
336 return nil, err
337 }
338 }
@@ -473,12 +450,6 @@ func (adder *Adder) addDir(path string, dir files.Directory, toplevel bool) erro
450 it := dir.Entries()
451 for it.Next() {
452 fpath := gopath.Join(path, it.Name())
476 -
477 - // Skip hidden files when adding recursively, unless Hidden is enabled.
478 - if files.IsHidden(fpath, it.Node()) && !adder.Hidden {
479 - log.Infof("%s is hidden, skipping", fpath)
480 - continue
481 - }
453 err := adder.addFileNode(fpath, it.Node(), false)
454 if err != nil {
455 return err