diff mbox series

[kvm-unit-tests,v2] scripts: Colorize output only on terminal

Message ID 20190410150500.14056-1-daniel.diaz@linaro.org (mailing list archive)
State New, archived
Headers show
Series [kvm-unit-tests,v2] scripts: Colorize output only on terminal | expand

Commit Message

Daniel Díaz April 10, 2019, 3:05 p.m. UTC
Instead of colorizing the output of PASS/SKIP/FAIL all the
time, do it only when stdout is plugged to a terminal, which
is generally a good indication that colors will be helpful.

When stdout is instead redirected, say, to a file, it's not
easy to parse the results of the tests. When analyzing and
extracting information out of the logs, it would be better to
strip the color information and just keep the test results.

Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
---
 scripts/runtime.bash | 18 +++++++++++++++---
 1 file changed, 15 insertions(+), 3 deletions(-)

Comments

Andrew Jones April 10, 2019, 5:48 p.m. UTC | #1
On Wed, Apr 10, 2019 at 10:05:00AM -0500, Daniel Díaz wrote:
> Instead of colorizing the output of PASS/SKIP/FAIL all the
> time, do it only when stdout is plugged to a terminal, which
> is generally a good indication that colors will be helpful.
> 
> When stdout is instead redirected, say, to a file, it's not
> easy to parse the results of the tests. When analyzing and
> extracting information out of the logs, it would be better to
> strip the color information and just keep the test results.
> 
> Signed-off-by: Daniel Díaz <daniel.diaz@linaro.org>
> ---
>  scripts/runtime.bash | 18 +++++++++++++++---
>  1 file changed, 15 insertions(+), 3 deletions(-)
> 
> diff --git a/scripts/runtime.bash b/scripts/runtime.bash
> index 200d5b6..d4de6b1 100644
> --- a/scripts/runtime.bash
> +++ b/scripts/runtime.bash
> @@ -2,9 +2,21 @@
>  : ${MAX_SMP:=$(getconf _NPROCESSORS_CONF)}
>  : ${TIMEOUT:=90s}
>  
> -PASS() { echo -ne "\e[32mPASS\e[0m"; }
> -SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
> -FAIL() { echo -ne "\e[31mFAIL\e[0m"; }
> +# Define text colors
> +color_reset=
> +color_red=
> +color_green=
> +color_yellow=
> +# If stdout is plugged to terminal, use colors
> +if [ -t 1 ]; then
> +    color_reset="\e[0m"
> +    color_red="\e[31m"
> +    color_green="\e[32m"
> +    color_yellow="\e[33m"
> +fi
> +PASS() { echo -ne "${color_green}PASS${color_reset}"; }
> +SKIP() { echo -ne "${color_yellow}SKIP${color_reset}"; }
> +FAIL() { echo -ne "${color_red}FAIL${color_reset}"; }
>  
>  extract_summary()
>  {
> -- 
> 2.17.1
>

Reviewed-by: Andrew Jones <drjones@redhat.com>
diff mbox series

Patch

diff --git a/scripts/runtime.bash b/scripts/runtime.bash
index 200d5b6..d4de6b1 100644
--- a/scripts/runtime.bash
+++ b/scripts/runtime.bash
@@ -2,9 +2,21 @@ 
 : ${MAX_SMP:=$(getconf _NPROCESSORS_CONF)}
 : ${TIMEOUT:=90s}
 
-PASS() { echo -ne "\e[32mPASS\e[0m"; }
-SKIP() { echo -ne "\e[33mSKIP\e[0m"; }
-FAIL() { echo -ne "\e[31mFAIL\e[0m"; }
+# Define text colors
+color_reset=
+color_red=
+color_green=
+color_yellow=
+# If stdout is plugged to terminal, use colors
+if [ -t 1 ]; then
+    color_reset="\e[0m"
+    color_red="\e[31m"
+    color_green="\e[32m"
+    color_yellow="\e[33m"
+fi
+PASS() { echo -ne "${color_green}PASS${color_reset}"; }
+SKIP() { echo -ne "${color_yellow}SKIP${color_reset}"; }
+FAIL() { echo -ne "${color_red}FAIL${color_reset}"; }
 
 extract_summary()
 {