mirror of https://github.com/docker/cli.git
cli: additionalHelp() don't decorate output if it's piped
This prevents the escape-characters being included when piping the output, e.g. `docker --help > output.txt`, or `docker --help | something`. These control-characters could cause issues if users copy/pasted the URL from the output, resulting in them becoming part of the URL they tried to visit, which would fail, e.g. when copying the output from: To get more help with docker, check out our guides at https://docs.docker.com/go/guides/ Users ended up on URLs like; https://docs.docker.com/go/guides/ESC https://docs.docker.com/go/guides/%1B[0m Before this patch, control characters ("bold") would be printed, even if no TTY was attached; docker --help > output.txt cat output.txt | grep 'For more help' | od -c 0000000 033 [ 1 m F o r m o r e h e l 0000020 p o n h o w t o u s e 0000040 D o c k e r , h e a d t o 0000060 h t t p s : / / d o c s . d o c 0000100 k e r . c o m / g o / g u i d e 0000120 s / 033 [ 0 m \n 0000127 docker --help | grep 'For more help' | od -c 0000000 033 [ 1 m F o r m o r e h e l 0000020 p o n h o w t o u s e 0000040 D o c k e r , h e a d t o 0000060 h t t p s : / / d o c s . d o c 0000100 k e r . c o m / g o / g u i d e 0000120 s / 033 [ 0 m \n 0000127 With this patch, no control characters are included: docker --help > output.txt cat output.txt | grep 'For more help' | od -c 0000000 F o r m o r e h e l p o n 0000020 h o w t o u s e D o c k 0000040 e r , h e a d t o h t t p 0000060 s : / / d o c s . d o c k e r . 0000100 c o m / g o / g u i d e s / \n 0000117 docker --help | grep 'For more help' | od -c 0000000 F o r m o r e h e l p o n 0000020 h o w t o u s e D o c k 0000040 e r , h e a d t o h t t p 0000060 s : / / d o c s . d o c k e r . 0000100 c o m / g o / g u i d e s / \n 0000117 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
parent
d0a4b6f497
commit
59e74b44ae
|
@ -234,9 +234,13 @@ func isExperimental(cmd *cobra.Command) bool {
|
|||
}
|
||||
|
||||
func additionalHelp(cmd *cobra.Command) string {
|
||||
if additionalHelp, ok := cmd.Annotations["additionalHelp"]; ok {
|
||||
if msg, ok := cmd.Annotations["additionalHelp"]; ok {
|
||||
out := cmd.OutOrStderr()
|
||||
if _, isTerminal := term.GetFdInfo(out); !isTerminal {
|
||||
return msg
|
||||
}
|
||||
style := aec.EmptyBuilder.Bold().ANSI
|
||||
return style.Apply(additionalHelp)
|
||||
return style.Apply(msg)
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue