@cryptotaxi247 / kubo / commits / f08c88c8b

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