mirror of https://github.com/knative/func.git
fix: closing stdout
pack client was closing stdout this commit prevents that Signed-off-by: Matej Vasek <mvasek@redhat.com>
This commit is contained in:
parent
e7b0c375d4
commit
6f40b29d3e
|
|
@ -95,7 +95,9 @@ func (builder *Builder) Build(ctx context.Context, f fn.Function) (err error) {
|
||||||
// log output is either STDOUt or kept in a buffer to be printed on error.
|
// log output is either STDOUt or kept in a buffer to be printed on error.
|
||||||
var logWriter io.Writer
|
var logWriter io.Writer
|
||||||
if builder.Verbose {
|
if builder.Verbose {
|
||||||
logWriter = os.Stdout
|
// pass stdout as non-closeable writer
|
||||||
|
// otherwise pack client would close it which is bad
|
||||||
|
logWriter = stdoutWrapper{os.Stdout}
|
||||||
} else {
|
} else {
|
||||||
logWriter = &bytes.Buffer{}
|
logWriter = &bytes.Buffer{}
|
||||||
}
|
}
|
||||||
|
|
@ -129,6 +131,15 @@ func (builder *Builder) Build(ctx context.Context, f fn.Function) (err error) {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// hack this makes stdout non-closeable
|
||||||
|
type stdoutWrapper struct {
|
||||||
|
impl io.Writer
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s stdoutWrapper) Write(p []byte) (n int, err error) {
|
||||||
|
return s.impl.Write(p)
|
||||||
|
}
|
||||||
|
|
||||||
type clientWrapper struct {
|
type clientWrapper struct {
|
||||||
impl dockerClient.CommonAPIClient
|
impl dockerClient.CommonAPIClient
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -153,8 +153,6 @@ func TestRemove(t *testing.T) {
|
||||||
// newClient creates an instance of the func client whose concrete impls
|
// newClient creates an instance of the func client whose concrete impls
|
||||||
// match those created by the kn func plugin CLI.
|
// match those created by the kn func plugin CLI.
|
||||||
func newClient(verbose bool) *boson.Client {
|
func newClient(verbose bool) *boson.Client {
|
||||||
// TODO: Forcing verbose to false in order to pass integration tests
|
|
||||||
verbose = false
|
|
||||||
builder := buildpacks.NewBuilder()
|
builder := buildpacks.NewBuilder()
|
||||||
builder.Verbose = verbose
|
builder.Verbose = verbose
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue