Skip to content
This repository was archived by the owner on Mar 16, 2024. It is now read-only.

Commit 5401fda

Browse files
Ensure that CTRL+C cancels logs
Signed-off-by: Darren Shepherd <[email protected]>
1 parent 5b93d80 commit 5401fda

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

pkg/client/app.go

+8-1
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,11 @@ func (c *DefaultClient) AppLog(ctx context.Context, name string, opts *LogOption
322322
return nil, err
323323
}
324324

325+
go func() {
326+
<-ctx.Done()
327+
_ = conn.Close()
328+
}()
329+
325330
result := make(chan apiv1.LogMessage)
326331
go func() {
327332
defer close(result)
@@ -331,7 +336,9 @@ func (c *DefaultClient) AppLog(ctx context.Context, name string, opts *LogOption
331336
if websocket.IsCloseError(err, websocket.CloseNormalClosure) {
332337
break
333338
} else if err != nil {
334-
logrus.Errorf("error reading websocket: %v", err)
339+
if strings.Contains(err.Error(), "use of closed network connection") {
340+
logrus.Errorf("error reading websocket: %v", err)
341+
}
335342
break
336343
}
337344
message := apiv1.LogMessage{}

pkg/client/image.go

+10
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,11 @@ func (c *DefaultClient) ImagePull(ctx context.Context, imageName string, opts *I
8282
return nil, err
8383
}
8484

85+
go func() {
86+
<-ctx.Done()
87+
_ = conn.Close()
88+
}()
89+
8590
if err := conn.WriteJSON(body); err != nil {
8691
return nil, err
8792
}
@@ -138,6 +143,11 @@ func (c *DefaultClient) ImagePush(ctx context.Context, imageName string, opts *I
138143
return nil, err
139144
}
140145

146+
go func() {
147+
<-ctx.Done()
148+
_ = conn.Close()
149+
}()
150+
141151
if err := conn.WriteJSON(body); err != nil {
142152
return nil, err
143153
}

0 commit comments

Comments
 (0)