From 4d8aad8ad1ad95053c54e72374b88d8c17edd268 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Ren=C3=A9=20Kijewski?= <rene.kijewski@fu-berlin.de>
Date: Mon, 6 Oct 2014 17:21:37 +0200
Subject: [PATCH] make: Centralize color use

---
 Makefile.buildtests | 47 ++++++++++++++++++++++++++-------------------
 1 file changed, 27 insertions(+), 20 deletions(-)

diff --git a/Makefile.buildtests b/Makefile.buildtests
index 02971dc3e3..7dbc514759 100644
--- a/Makefile.buildtests
+++ b/Makefile.buildtests
@@ -34,23 +34,32 @@ BOARDS := $(filter-out $(BOARD_BLACKLIST), $(BOARDS))
 .PHONY: buildtest info-objsize info-buildsize info-buildsizes \
         info-buildsizes-diff info-build info-boards-supported
 
+
+COLOR_GREEN  :=
+COLOR_RED    :=
+COLOR_PURPLE :=
+COLOR_RESET  :=
+COLOR_ECHO   := /bin/echo
+ifeq (, ${JENKINS_URL})
+  ifeq (0,  $(shell tput colors 2>&1 > /dev/null; echo $$?))
+    COLOR_GREEN  := \033[1;32m
+    COLOR_RED    := \033[1;31m
+    COLOR_PURPLE := \033[1;35m
+    COLOR_RESET  := \033[0m
+    COLOR_ECHO   := /bin/echo -e
+  endif
+endif
+
 buildtest:
-	@if [ -z "$${JENKINS_URL}" ] && tput colors 2>&1 > /dev/null; then \
-		GREEN='\033[1;32m'; RED='\033[1;31m'; PURPLE='\033[1;35m'; RESET='\033[0m'; \
-		ECHO='/bin/echo -e'; \
-	else \
-		GREEN=''; RED=''; PURPLE=''; RESET=''; \
-		ECHO='/bin/echo'; \
-	fi; \
-	\
+	@ \
 	BUILDTESTOK=true; \
 	rm -rf "$$BINDIRBASE"; \
 	for BOARD in $(BOARDS); do \
 		RIOTNOLINK=$$(case ' $(BOARD_INSUFFICIENT_RAM) ' in *" $${BOARD} "*) echo 1; esac); \
-		$${ECHO} -n "Building for $${BOARD} "; \
-		[ -n "$${RIOTNOLINK}" ] && $${ECHO} -n "(no linking) "; \
+		${COLOR_ECHO} -n "Building for $${BOARD} "; \
+		[ -n "$${RIOTNOLINK}" ] && ${COLOR_ECHO} -n "(no linking) "; \
 		for NTH_TRY in 1 2; do \
-			$${ECHO} -n ".. "; \
+			${COLOR_ECHO} -n ".. "; \
 			LOG=$$(env -i \
 					HOME=$${HOME} \
 					PATH=$${PATH} \
@@ -63,12 +72,12 @@ buildtest:
 					RIOT_VERSION=$${RIOT_VERSION} \
 					$(MAKE) -j$(NPROC) 2>&1 >/dev/null) ; \
 			if [ "$${?}" = "0" ]; then \
-				$${ECHO} "$${GREEN}success$${RESET}"; \
+				${COLOR_ECHO} "${COLOR_GREEN}success${COLOR_RESET}"; \
 			elif [ -n "$${RIOT_DO_RETRY}" ] && $${BUILDTESTOK} && [ $${NTH_TRY} = 1 ]; then \
-				$${ECHO} -n "$${PURPLE}retrying$${RESET} "; \
+				${COLOR_ECHO} -n "${COLOR_PURPLE}retrying${COLOR_RESET} "; \
 				continue; \
 			else \
-				$${ECHO} "$${RED}failed$${RESET}"; \
+				${COLOR_ECHO} "${COLOR_RED}failed${COLOR_RESET}"; \
 				echo "$${LOG}" | grep -v -E '^make(\[[[:digit:]]])?:'; \
 				BUILDTESTOK=false; \
 			fi; \
@@ -112,8 +121,6 @@ info-buildsizes:
 
 info-buildsizes-diff: SHELL=bash
 info-buildsizes-diff:
-	@GREEN='\033[1;32m'; RED='\033[1;31m'; RESET='\033[0m'; \
-	\
 	echo -e "text\tdata\tbss\tdec\tBOARD/BINDIRBASE\n"; \
 	for BOARD in $(BOARDS); do \
 		for BINDIRBASE in $${OLDBIN} $${NEWBIN}; do \
@@ -131,16 +138,16 @@ info-buildsizes-diff:
 			for I in 0 1 2 3; do \
 				if [[ -n "$${NEW[I]}" && -n "$${OLD[I]}" ]]; then \
 					DIFF=$$(($${NEW[I]} - $${OLD[I]})); \
-					if [[ "$${DIFF}" -gt 0 ]]; then echo -ne "$${RED}"; fi; \
-					if [[ "$${DIFF}" -lt 0 ]]; then echo -ne "$${GREEN}"; fi; \
+					if [[ "$${DIFF}" -gt 0 ]]; then $(COLOR_ECHO) -n "${COLOR_RED}"; fi; \
+					if [[ "$${DIFF}" -lt 0 ]]; then $(COLOR_ECHO) -n "${COLOR_GREEN}"; fi; \
 				else \
 					DIFF="$${RED}ERR"; \
 				fi; \
 				echo -ne "$${DIFF}\t$${RESET}"; \
 			done; \
 			echo "$${BOARD}"; \
-			for I in 0 1 2 3; do echo -ne "$${OLD[I]-$${RED}ERR$${RESET}}\t"; done; echo -e "$${OLDBIN}"; \
-			for I in 0 1 2 3; do echo -ne "$${NEW[I]-$${RED}ERR$${RESET}}\t"; done; echo -e "$${NEWBIN}\n"; \
+			for I in 0 1 2 3; do echo -ne "$${OLD[I]-${COLOR_RED}ERR${COLOR_RESET}}\t"; done; echo -e "$${OLDBIN}"; \
+			for I in 0 1 2 3; do echo -ne "$${NEW[I]-${COLOR_RED}ERR${COLOR_RESET}}\t"; done; echo -e "$${NEWBIN}\n"; \
 		done; \
 	done;
 
-- 
GitLab