Skip to content

Commit 3600ebc

Browse files
committed
remove uses of github.com/docker/docker/pkg/ioutils ReadCloserWrapper
It was the only utility we consumed from the package, and it's trivial to implement, so let's create local copies of it. Signed-off-by: Sebastiaan van Stijn <[email protected]>
1 parent c69d8bd commit 3600ebc

File tree

7 files changed

+41
-293
lines changed

7 files changed

+41
-293
lines changed

cli/command/container/hijack.go

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ import (
99

1010
"github.com/docker/cli/cli/command"
1111
"github.com/docker/docker/api/types"
12-
"github.com/docker/docker/pkg/ioutils"
1312
"github.com/docker/docker/pkg/stdcopy"
1413
"github.com/moby/term"
1514
"github.com/sirupsen/logrus"
@@ -19,6 +18,18 @@ import (
1918
// TODO: This could be moved to `pkg/term`.
2019
var defaultEscapeKeys = []byte{16, 17}
2120

21+
// readCloserWrapper wraps an io.Reader, and implements an io.ReadCloser
22+
// It calls the given callback function when closed.
23+
type readCloserWrapper struct {
24+
io.Reader
25+
closer func() error
26+
}
27+
28+
// Close calls back the passed closer function
29+
func (r *readCloserWrapper) Close() error {
30+
return r.closer()
31+
}
32+
2233
// A hijackedIOStreamer handles copying input to and output from streams to the
2334
// connection.
2435
type hijackedIOStreamer struct {
@@ -100,7 +111,10 @@ func (h *hijackedIOStreamer) setupInput() (restore func(), err error) {
100111
}
101112
}
102113

103-
h.inputStream = ioutils.NewReadCloserWrapper(term.NewEscapeProxy(h.inputStream, escapeKeys), h.inputStream.Close)
114+
h.inputStream = &readCloserWrapper{
115+
Reader: term.NewEscapeProxy(h.inputStream, escapeKeys),
116+
closer: h.inputStream.Close,
117+
}
104118

105119
return restore, nil
106120
}

cli/command/image/build/context.go

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import (
1515
"time"
1616

1717
"github.com/docker/docker/builder/remotecontext/git"
18-
"github.com/docker/docker/pkg/ioutils"
1918
"github.com/docker/docker/pkg/progress"
2019
"github.com/docker/docker/pkg/streamformatter"
2120
"github.com/docker/docker/pkg/stringid"
@@ -108,7 +107,7 @@ func DetectArchiveReader(input io.ReadCloser) (rc io.ReadCloser, isArchive bool,
108107
return nil, false, errors.Errorf("failed to peek context header from STDIN: %v", err)
109108
}
110109

111-
return ioutils.NewReadCloserWrapper(buf, func() error { return input.Close() }), IsArchive(magic), nil
110+
return newReadCloserWrapper(buf, func() error { return input.Close() }), IsArchive(magic), nil
112111
}
113112

114113
// WriteTempDockerfile writes a Dockerfile stream to a temporary file with a
@@ -169,7 +168,7 @@ func GetContextFromReader(rc io.ReadCloser, dockerfileName string) (out io.ReadC
169168
return nil, "", err
170169
}
171170

172-
return ioutils.NewReadCloserWrapper(tarArchive, func() error {
171+
return newReadCloserWrapper(tarArchive, func() error {
173172
err := tarArchive.Close()
174173
os.RemoveAll(dockerfileDir)
175174
return err
@@ -227,7 +226,7 @@ func GetContextFromURL(out io.Writer, remoteURL, dockerfileName string) (io.Read
227226
// Pass the response body through a progress reader.
228227
progReader := progress.NewProgressReader(response.Body, progressOutput, response.ContentLength, "", "Downloading build context from remote url: "+remoteURL)
229228

230-
return GetContextFromReader(ioutils.NewReadCloserWrapper(progReader, func() error { return response.Body.Close() }), dockerfileName)
229+
return GetContextFromReader(newReadCloserWrapper(progReader, func() error { return response.Body.Close() }), dockerfileName)
231230
}
232231

233232
// getWithStatusError does an http.Get() and returns an error if the
@@ -444,3 +443,25 @@ func Compress(buildCtx io.ReadCloser) (io.ReadCloser, error) {
444443

445444
return pipeReader, nil
446445
}
446+
447+
// readCloserWrapper wraps an io.Reader, and implements an io.ReadCloser
448+
// It calls the given callback function when closed. It should be constructed
449+
// with [newReadCloserWrapper].
450+
type readCloserWrapper struct {
451+
io.Reader
452+
closer func() error
453+
}
454+
455+
// Close calls back the passed closer function
456+
func (r *readCloserWrapper) Close() error {
457+
return r.closer()
458+
}
459+
460+
// newReadCloserWrapper wraps an io.Reader, and implements an io.ReadCloser.
461+
// It calls the given callback function when closed.
462+
func newReadCloserWrapper(r io.Reader, closer func() error) io.ReadCloser {
463+
return &readCloserWrapper{
464+
Reader: r,
465+
closer: closer,
466+
}
467+
}

vendor/github.com/docker/docker/pkg/ioutils/fswriters_deprecated.go

Lines changed: 0 additions & 44 deletions
This file was deleted.

vendor/github.com/docker/docker/pkg/ioutils/readers.go

Lines changed: 0 additions & 118 deletions
This file was deleted.

vendor/github.com/docker/docker/pkg/ioutils/writeflusher.go

Lines changed: 0 additions & 96 deletions
This file was deleted.

vendor/github.com/docker/docker/pkg/ioutils/writers.go

Lines changed: 0 additions & 28 deletions
This file was deleted.

vendor/modules.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,6 @@ github.com/docker/docker/client
9595
github.com/docker/docker/internal/lazyregexp
9696
github.com/docker/docker/internal/multierror
9797
github.com/docker/docker/pkg/homedir
98-
github.com/docker/docker/pkg/ioutils
9998
github.com/docker/docker/pkg/jsonmessage
10099
github.com/docker/docker/pkg/longpath
101100
github.com/docker/docker/pkg/process

0 commit comments

Comments
 (0)