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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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@xxxxxxxxxx>
---
 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




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux