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