add context to files reading
License: MIT Signed-off-by: Jeromy <jeromyj@gmail.com>
Jeromy committed
Jan 12, 2016 at 06:06 UTC
b078915fb412f83ed01f5b44041a3d6b3db6a7dc
1 file changed
+14
-1
core/commands/files/files.go
+14
-1
@@ -374,7 +374,7 @@ Examples:
374
res.SetError(err, cmds.ErrNormal)
375
return
376
}
377
- var r io.Reader = fi
377
+ var r io.Reader = &contextReaderWrapper{R: fi, ctx: req.Context()}
378
count, found, err := req.Option("count").Int()
379
if err != nil {
380
res.SetError(err, cmds.ErrNormal)
@@ -392,6 +392,19 @@ Examples:
392
},
393
}
394
395
+type contextReader interface {
396
+ CtxReadFull(context.Context, []byte) (int, error)
397
+}
398
+
399
+type contextReaderWrapper struct {
400
+ R contextReader
401
+ ctx context.Context
402
+}
403
+
404
+func (crw *contextReaderWrapper) Read(b []byte) (int, error) {
405
+ return crw.R.CtxReadFull(crw.ctx, b)
406
+}
407
+
408
var FilesMvCmd = &cmds.Command{
409
Helptext: cmds.HelpText{
410
Tagline: "Move files.",