feedback from CR
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
Jeromy committed
Dec 7, 2015 at 22:19 UTC
f08c88c8bb37ecd2689294d261713d2789fae2b2
3 files changed
+56
-46
core/commands/add.go
+7
-1
@@ -213,10 +213,16 @@ remains to be implemented.
213
return
214
}
215
216
+ silent, _, err := req.Option(silentOptionName).Bool()
217
+ if err != nil {
218
+ res.SetError(u.ErrCast(), cmds.ErrNormal)
219
+ return
220
+ }
221
+
222
var showProgressBar bool
223
if prgFound {
224
showProgressBar = progress
219
- } else if !quiet {
225
+ } else if !quiet && !silent {
226
showProgressBar = true
227
}
228
core/coreunix/add.go
+44
-45
@@ -105,97 +105,96 @@ type Adder struct {
105
}
106
107
// Perform the actual add & pin locally, outputting results to reader
108
-func (params Adder) add(reader io.Reader) (*dag.Node, error) {
109
- chnk, err := chunk.FromString(reader, params.Chunker)
108
+func (adder Adder) add(reader io.Reader) (*dag.Node, error) {
109
+ chnk, err := chunk.FromString(reader, adder.Chunker)
110
if err != nil {
111
return nil, err
112
}
113
114
- if params.Trickle {
114
+ if adder.Trickle {
115
return importer.BuildTrickleDagFromReader(
116
- params.node.DAG,
116
+ adder.node.DAG,
117
chnk,
118
)
119
}
120
return importer.BuildDagFromReader(
121
- params.node.DAG,
121
+ adder.node.DAG,
122
chnk,
123
)
124
}
125
126
-func (params *Adder) RootNode() (*dag.Node, error) {
126
+func (adder *Adder) RootNode() (*dag.Node, error) {
127
// for memoizing
128
- if params.root != nil {
129
- return params.root, nil
128
+ if adder.root != nil {
129
+ return adder.root, nil
130
}
131
132
- root, err := params.mr.GetValue().GetNode()
132
+ root, err := adder.mr.GetValue().GetNode()
133
if err != nil {
134
return nil, err
135
}
136
137
// if not wrapping, AND one root file, use that hash as root.
138
- if !params.Wrap && len(root.Links) == 1 {
139
- root, err = root.Links[0].GetNode(params.ctx, params.node.DAG)
138
+ if !adder.Wrap && len(root.Links) == 1 {
139
+ root, err = root.Links[0].GetNode(adder.ctx, adder.node.DAG)
140
if err != nil {
141
return nil, err
142
}
143
}
144
145
- params.root = root
145
+ adder.root = root
146
return root, err
147
}
148
149
-func (params *Adder) PinRoot() error {
150
- root, err := params.RootNode()
149
+func (adder *Adder) PinRoot() error {
150
+ root, err := adder.RootNode()
151
if err != nil {
152
return err
153
}
154
- if !params.Pin {
154
+ if !adder.Pin {
155
return nil
156
}
157
158
- rnk, err := params.node.DAG.Add(root)
158
+ rnk, err := adder.node.DAG.Add(root)
159
if err != nil {
160
return err
161
}
162
163
- if params.tempRoot != "" {
164
- err := params.node.Pinning.Unpin(params.ctx, params.tempRoot, true)
163
+ if adder.tempRoot != "" {
164
+ err := adder.node.Pinning.Unpin(adder.ctx, adder.tempRoot, true)
165
if err != nil {
166
return err
167
}
168
- params.tempRoot = rnk
168
+ adder.tempRoot = rnk
169
}
170
171
- params.node.Pinning.PinWithMode(rnk, pin.Recursive)
172
- return params.node.Pinning.Flush()
171
+ adder.node.Pinning.PinWithMode(rnk, pin.Recursive)
172
+ return adder.node.Pinning.Flush()
173
}
174
175
-func (params *Adder) Finalize() (*dag.Node, error) {
176
- root, err := params.mr.GetValue().GetNode()
175
+func (adder *Adder) Finalize() (*dag.Node, error) {
176
+ // cant just call adder.RootNode() here as we need the name for printing
177
+ root, err := adder.mr.GetValue().GetNode()
178
if err != nil {
179
return nil, err
180
}
181
181
- params.RootNode()
182
-
182
var name string
184
- if !params.Wrap {
183
+ if !adder.Wrap {
184
name = root.Links[0].Name
186
- child, err := root.Links[0].GetNode(params.ctx, params.node.DAG)
185
+ child, err := root.Links[0].GetNode(adder.ctx, adder.node.DAG)
186
if err != nil {
187
return nil, err
188
}
189
root = child
190
}
191
193
- err = params.outputDirs(name, root)
192
+ err = adder.outputDirs(name, root)
193
if err != nil {
194
return nil, err
195
}
196
198
- err = params.mr.Close()
197
+ err = adder.mr.Close()
198
if err != nil {
199
return nil, err
200
}
@@ -203,24 +202,24 @@ func (params *Adder) Finalize() (*dag.Node, error) {
202
return root, nil
203
}
204
206
-func (params *Adder) outputDirs(path string, nd *dag.Node) error {
205
+func (adder *Adder) outputDirs(path string, nd *dag.Node) error {
206
if !bytes.Equal(nd.Data, folderData) {
207
return nil
208
}
209
210
for _, l := range nd.Links {
212
- child, err := l.GetNode(params.ctx, params.node.DAG)
211
+ child, err := l.GetNode(adder.ctx, adder.node.DAG)
212
if err != nil {
213
return err
214
}
215
217
- err = params.outputDirs(gopath.Join(path, l.Name), child)
216
+ err = adder.outputDirs(gopath.Join(path, l.Name), child)
217
if err != nil {
218
return err
219
}
220
}
221
223
- return outputDagnode(params.out, path, nd)
222
+ return outputDagnode(adder.out, path, nd)
223
}
224
225
// Add builds a merkledag from the a reader, pinning all objects to the local
@@ -318,7 +317,7 @@ func AddWrapped(n *core.IpfsNode, r io.Reader, filename string) (string, *dag.No
317
return gopath.Join(k.String(), filename), dagnode, nil
318
}
319
321
-func (params *Adder) addNode(node *dag.Node, path string) error {
320
+func (adder *Adder) addNode(node *dag.Node, path string) error {
321
// patch it into the root
322
if path == "" {
323
key, err := node.Key()
@@ -329,22 +328,22 @@ func (params *Adder) addNode(node *dag.Node, path string) error {
328
path = key.Pretty()
329
}
330
332
- if err := mfs.PutNode(params.mr, path, node); err != nil {
331
+ if err := mfs.PutNode(adder.mr, path, node); err != nil {
332
return err
333
}
334
336
- if !params.Silent {
337
- return outputDagnode(params.out, path, node)
335
+ if !adder.Silent {
336
+ return outputDagnode(adder.out, path, node)
337
}
338
return nil
339
}
340
342
-// Add the given file while respecting the params.
343
-func (params *Adder) AddFile(file files.File) error {
344
- params.unlock = params.node.Blockstore.PinLock()
345
- defer params.unlock()
341
+// Add the given file while respecting the adder.
342
+func (adder *Adder) AddFile(file files.File) error {
343
+ adder.unlock = adder.node.Blockstore.PinLock()
344
+ defer adder.unlock()
345
347
- return params.addFile(file)
346
+ return adder.addFile(file)
347
}
348
349
func (adder *Adder) addFile(file files.File) error {
@@ -394,10 +393,10 @@ func (adder *Adder) addFile(file files.File) error {
393
return adder.addNode(dagnode, file.FileName())
394
}
395
397
-func (params *Adder) addDir(dir files.File) error {
396
+func (adder *Adder) addDir(dir files.File) error {
397
log.Infof("adding directory: %s", dir.FileName())
398
400
- err := mfs.Mkdir(params.mr, dir.FileName(), true)
399
+ err := mfs.Mkdir(adder.mr, dir.FileName(), true)
400
if err != nil {
401
return err
402
}
@@ -411,7 +410,7 @@ func (params *Adder) addDir(dir files.File) error {
410
break
411
}
412
414
- err = params.addFile(file)
413
+ err = adder.addFile(file)
414
if _, ok := err.(*hiddenFileError); ok {
415
// hidden file error, skip file
416
continue
test/sharness/t0080-repo.sh
+5
@@ -29,6 +29,11 @@ test_expect_success "'ipfs repo gc' succeeds" '
29
ipfs repo gc >gc_out_actual
30
'
31
32
+test_expect_success "'ipfs repo gc' looks good (patch root)" '
33
+ PATCH_ROOT=QmQXirSbubiySKnqaFyfs5YzziXRB5JEVQVjU6xsd7innr &&
34
+ grep "removed $PATCH_ROOT" gc_out_actual
35
+'
36
+
37
test_expect_success "'ipfs repo gc' doesnt remove file" '
38
ipfs cat "$HASH" >out &&
39
test_cmp out afile