The `DisplayJSONMessages` only accepted a `JSONMessagesStream`. This meant that
it would not accept the output from (for example) [client.ImagePushResponse].
This patch:
- Makes `DisplayJSONMessages` accept any `iter.Seq2[jsonstream.Message, error]`
- Makes `JSONMessagesStream` an alias instead of a concrete type (TBD if we
actually need the type).
- Some minor cleanups in the implementation.
[client.ImagePushResponse]: https://github.com/moby/moby/blob/fa87120ae64a170fd42096de3b873b439b95016b/client/image_push.go#L20-L24
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
| ... | ... |
@@ -144,14 +144,14 @@ func Display(jm jsonstream.Message, out io.Writer, isTerminal bool, width uint16 |
| 144 | 144 |
return nil |
| 145 | 145 |
} |
| 146 | 146 |
|
| 147 |
-type JSONMessagesStream iter.Seq2[jsonstream.Message, error] |
|
| 147 |
+type JSONMessagesStream = iter.Seq2[jsonstream.Message, error] |
|
| 148 | 148 |
|
| 149 | 149 |
// DisplayJSONMessagesStream reads a JSON message stream from in, and writes |
| 150 | 150 |
// each [JSONMessage] to out. |
| 151 | 151 |
// see DisplayJSONMessages for details |
| 152 | 152 |
func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
| 153 | 153 |
dec := json.NewDecoder(in) |
| 154 |
- var f JSONMessagesStream = func(yield func(jsonstream.Message, error) bool) {
|
|
| 154 |
+ f := func(yield func(jsonstream.Message, error) bool) {
|
|
| 155 | 155 |
for {
|
| 156 | 156 |
var jm jsonstream.Message |
| 157 | 157 |
err := dec.Decode(&jm) |
| ... | ... |
@@ -183,7 +183,7 @@ func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, |
| 183 | 183 |
// - auxCallback allows handling the [JSONMessage.Aux] field. It is |
| 184 | 184 |
// called if a JSONMessage contains an Aux field, in which case |
| 185 | 185 |
// DisplayJSONMessagesStream does not present the JSONMessage. |
| 186 |
-func DisplayJSONMessages(messages JSONMessagesStream, out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
|
| 186 |
+func DisplayJSONMessages(messages iter.Seq2[jsonstream.Message, error], out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
|
| 187 | 187 |
ids := make(map[string]uint) |
| 188 | 188 |
var width uint16 = 200 |
| 189 | 189 |
if isTerminal {
|
| ... | ... |
@@ -144,14 +144,14 @@ func Display(jm jsonstream.Message, out io.Writer, isTerminal bool, width uint16 |
| 144 | 144 |
return nil |
| 145 | 145 |
} |
| 146 | 146 |
|
| 147 |
-type JSONMessagesStream iter.Seq2[jsonstream.Message, error] |
|
| 147 |
+type JSONMessagesStream = iter.Seq2[jsonstream.Message, error] |
|
| 148 | 148 |
|
| 149 | 149 |
// DisplayJSONMessagesStream reads a JSON message stream from in, and writes |
| 150 | 150 |
// each [JSONMessage] to out. |
| 151 | 151 |
// see DisplayJSONMessages for details |
| 152 | 152 |
func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
| 153 | 153 |
dec := json.NewDecoder(in) |
| 154 |
- var f JSONMessagesStream = func(yield func(jsonstream.Message, error) bool) {
|
|
| 154 |
+ f := func(yield func(jsonstream.Message, error) bool) {
|
|
| 155 | 155 |
for {
|
| 156 | 156 |
var jm jsonstream.Message |
| 157 | 157 |
err := dec.Decode(&jm) |
| ... | ... |
@@ -183,7 +183,7 @@ func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr, |
| 183 | 183 |
// - auxCallback allows handling the [JSONMessage.Aux] field. It is |
| 184 | 184 |
// called if a JSONMessage contains an Aux field, in which case |
| 185 | 185 |
// DisplayJSONMessagesStream does not present the JSONMessage. |
| 186 |
-func DisplayJSONMessages(messages JSONMessagesStream, out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
|
| 186 |
+func DisplayJSONMessages(messages iter.Seq2[jsonstream.Message, error], out io.Writer, terminalFd uintptr, isTerminal bool, auxCallback func(jsonstream.Message)) error {
|
|
| 187 | 187 |
ids := make(map[string]uint) |
| 188 | 188 |
var width uint16 = 200 |
| 189 | 189 |
if isTerminal {
|