cmd/dist: close and remove tempfile after edit
Signed-off-by: Stephen J Day <stephen.day@docker.com>
This commit is contained in:
parent
3e485e4623
commit
941b0e47b0
26
cmd/dist/edit.go
vendored
26
cmd/dist/edit.go
vendored
@ -62,6 +62,7 @@ var editCommand = cli.Command{
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
defer nrc.Close()
|
||||||
|
|
||||||
wr, err := ingester.Writer(ctx, "edit-"+object, 0, "") // TODO(stevvooe): Choose a better key?
|
wr, err := ingester.Writer(ctx, "edit-"+object, 0, "") // TODO(stevvooe): Choose a better key?
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -109,5 +110,28 @@ func edit(rd io.Reader) (io.ReadCloser, error) {
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return tmp, nil
|
return onCloser{ReadCloser: tmp, onClose: func() error {
|
||||||
|
return os.RemoveAll(tmp.Name())
|
||||||
|
}}, nil
|
||||||
|
}
|
||||||
|
|
||||||
|
type onCloser struct {
|
||||||
|
io.ReadCloser
|
||||||
|
onClose func() error
|
||||||
|
}
|
||||||
|
|
||||||
|
func (oc onCloser) Close() error {
|
||||||
|
var err error
|
||||||
|
if err1 := oc.ReadCloser.Close(); err1 != nil {
|
||||||
|
err = err1
|
||||||
|
}
|
||||||
|
|
||||||
|
if oc.onClose != nil {
|
||||||
|
err1 := oc.onClose()
|
||||||
|
if err == nil {
|
||||||
|
err = err1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return err
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user