mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #28238 from ijc25/jsonmessage-urxvt-corruption
pkg/jsonmessage: Avoid undefined ANSI escape codes.
This commit is contained in:
commit
7aeacd35f2
2 changed files with 6 additions and 13 deletions
|
@ -189,13 +189,9 @@ func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr,
|
||||||
if isTerminal {
|
if isTerminal {
|
||||||
fmt.Fprintf(out, "\n")
|
fmt.Fprintf(out, "\n")
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
diff = len(ids) - line
|
|
||||||
}
|
}
|
||||||
if isTerminal {
|
diff = len(ids) - line
|
||||||
// NOTE: this appears to be necessary even if
|
if isTerminal && diff > 0 {
|
||||||
// diff == 0.
|
|
||||||
// <ESC>[{diff}A = move cursor up diff rows
|
|
||||||
fmt.Fprintf(out, "%c[%dA", 27, diff)
|
fmt.Fprintf(out, "%c[%dA", 27, diff)
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
@ -207,10 +203,7 @@ func DisplayJSONMessagesStream(in io.Reader, out io.Writer, terminalFd uintptr,
|
||||||
ids = make(map[string]int)
|
ids = make(map[string]int)
|
||||||
}
|
}
|
||||||
err := jm.Display(out, isTerminal)
|
err := jm.Display(out, isTerminal)
|
||||||
if jm.ID != "" && isTerminal {
|
if jm.ID != "" && isTerminal && diff > 0 {
|
||||||
// NOTE: this appears to be necessary even if
|
|
||||||
// diff == 0.
|
|
||||||
// <ESC>[{diff}B = move cursor down diff rows
|
|
||||||
fmt.Fprintf(out, "%c[%dB", 27, diff)
|
fmt.Fprintf(out, "%c[%dB", 27, diff)
|
||||||
}
|
}
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
|
@ -205,17 +205,17 @@ func TestDisplayJSONMessagesStream(t *testing.T) {
|
||||||
// Without progress, with ID
|
// Without progress, with ID
|
||||||
"{ \"id\": \"ID\",\"status\": \"status\" }": {
|
"{ \"id\": \"ID\",\"status\": \"status\" }": {
|
||||||
"ID: status\n",
|
"ID: status\n",
|
||||||
fmt.Sprintf("ID: status\n%c[%dB", 27, 0),
|
fmt.Sprintf("ID: status\n"),
|
||||||
},
|
},
|
||||||
// With progress
|
// With progress
|
||||||
"{ \"id\": \"ID\", \"status\": \"status\", \"progress\": \"ProgressMessage\" }": {
|
"{ \"id\": \"ID\", \"status\": \"status\", \"progress\": \"ProgressMessage\" }": {
|
||||||
"ID: status ProgressMessage",
|
"ID: status ProgressMessage",
|
||||||
fmt.Sprintf("\n%c[%dAID: status ProgressMessage%c[%dB", 27, 0, 27, 0),
|
fmt.Sprintf("\n%c[%dAID: status ProgressMessage%c[%dB", 27, 1, 27, 1),
|
||||||
},
|
},
|
||||||
// With progressDetail
|
// With progressDetail
|
||||||
"{ \"id\": \"ID\", \"status\": \"status\", \"progressDetail\": { \"Current\": 1} }": {
|
"{ \"id\": \"ID\", \"status\": \"status\", \"progressDetail\": { \"Current\": 1} }": {
|
||||||
"", // progressbar is disabled in non-terminal
|
"", // progressbar is disabled in non-terminal
|
||||||
fmt.Sprintf("\n%c[%dA%c[2K\rID: status 1 B\r%c[%dB", 27, 0, 27, 27, 0),
|
fmt.Sprintf("\n%c[%dA%c[2K\rID: status 1 B\r%c[%dB", 27, 1, 27, 27, 1),
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
for jsonMessage, expectedMessages := range messages {
|
for jsonMessage, expectedMessages := range messages {
|
||||||
|
|
Loading…
Add table
Reference in a new issue