Gentoo Archives: gentoo-portage-dev

From: "Michał Górny" <mgorny@g.o>
To: gentoo-portage-dev@l.g.o
Cc: "Michał Górny" <mgorny@g.o>
Subject: [gentoo-portage-dev] [PATCH 1/4] Prefix color vars with "PORTAGE_COLOR_"
Date: Tue, 28 Sep 2021 14:20:12
Message-Id: 20210928142004.1375262-2-mgorny@gentoo.org
In Reply to: [gentoo-portage-dev] [PATCH 0/4] Output rewrite for better clarify and greppability by "Michał Górny"
1 Rename color variables used by einfo etc. to use "PORTAGE_COLOR_"
2 prefix. Currently these variables are prone to being accidentally
3 ovewritten e.g. if an ebuild uses GOOD or BAD variables for some
4 purpose. Using PORTAGE prefix should keep us safe.
5
6 As an extra benefit, this makes it trivial to grep for all uses of color
7 variables.
8
9 Signed-off-by: Michał Górny <mgorny@g.o>
10 ---
11 bin/install-qa-check.d/10ignored-flags | 4 +--
12 bin/isolated-functions.sh | 42 +++++++++++++-------------
13 bin/save-ebuild-env.sh | 16 +++++-----
14 lib/portage/output.py | 4 +--
15 4 files changed, 34 insertions(+), 32 deletions(-)
16
17 diff --git a/bin/install-qa-check.d/10ignored-flags b/bin/install-qa-check.d/10ignored-flags
18 index 89706cd4c..7cd073578 100644
19 --- a/bin/install-qa-check.d/10ignored-flags
20 +++ b/bin/install-qa-check.d/10ignored-flags
21 @@ -52,7 +52,7 @@ ignored_flag_check() {
22 f=$(<"${T}"/scanelf-ignored-CFLAGS.log)
23 if [[ -n ${f} ]] ; then
24 __vecho -ne '\n'
25 - eqawarn "${BAD}QA Notice: Files built without respecting CFLAGS have been detected${NORMAL}"
26 + eqawarn "${PORTAGE_COLOR_BAD}QA Notice: Files built without respecting CFLAGS have been detected${PORTAGE_COLOR_NORMAL}"
27 eqawarn " Please include the following list of files in your report:"
28 eqawarn "${f}"
29 __vecho -ne '\n'
30 @@ -82,7 +82,7 @@ ignored_flag_check() {
31 f=$(<"${T}"/scanelf-ignored-LDFLAGS.log)
32 if [[ -n ${f} ]] ; then
33 __vecho -ne '\n'
34 - eqawarn "${BAD}QA Notice: Files built without respecting LDFLAGS have been detected${NORMAL}"
35 + eqawarn "${PORTAGE_COLOR_BAD}QA Notice: Files built without respecting LDFLAGS have been detected${PORTAGE_COLOR_NORMAL}"
36 eqawarn " Please include the following list of files in your report:"
37 eqawarn "${f}"
38 __vecho -ne '\n'
39 diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
40 index 5630dcf4c..3e79ea6e3 100644
41 --- a/bin/isolated-functions.sh
42 +++ b/bin/isolated-functions.sh
43 @@ -255,7 +255,7 @@ __elog_base() {
44 shift
45 ;;
46 *)
47 - __vecho -e " ${BAD}*${NORMAL} Invalid use of internal function __elog_base(), next message will not be logged"
48 + __vecho -e " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} Invalid use of internal function __elog_base(), next message will not be logged"
49 return 1
50 ;;
51 esac
52 @@ -270,7 +270,7 @@ eqawarn() {
53 __elog_base QA "$*"
54 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
55 echo -e "$@" | while read -r ; do
56 - echo " $WARN*$NORMAL $REPLY" >&2
57 + echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
58 done
59 LAST_E_CMD="eqawarn"
60 return 0
61 @@ -280,7 +280,7 @@ elog() {
62 __elog_base LOG "$*"
63 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
64 echo -e "$@" | while read -r ; do
65 - echo " $GOOD*$NORMAL $REPLY" >&2
66 + echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
67 done
68 LAST_E_CMD="elog"
69 return 0
70 @@ -290,7 +290,7 @@ einfo() {
71 __elog_base INFO "$*"
72 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
73 echo -e "$@" | while read -r ; do
74 - echo " $GOOD*$NORMAL $REPLY" >&2
75 + echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" >&2
76 done
77 LAST_E_CMD="einfo"
78 return 0
79 @@ -299,7 +299,7 @@ einfo() {
80 einfon() {
81 __elog_base INFO "$*"
82 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
83 - echo -ne " ${GOOD}*${NORMAL} $*" >&2
84 + echo -ne " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} $*" >&2
85 LAST_E_CMD="einfon"
86 return 0
87 }
88 @@ -308,7 +308,7 @@ ewarn() {
89 __elog_base WARN "$*"
90 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
91 echo -e "$@" | while read -r ; do
92 - echo " $WARN*$NORMAL $RC_INDENTATION$REPLY" >&2
93 + echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
94 done
95 LAST_E_CMD="ewarn"
96 return 0
97 @@ -318,7 +318,7 @@ eerror() {
98 __elog_base ERROR "$*"
99 [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
100 echo -e "$@" | while read -r ; do
101 - echo " $BAD*$NORMAL $RC_INDENTATION$REPLY" >&2
102 + echo " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} ${RC_INDENTATION}${REPLY}" >&2
103 done
104 LAST_E_CMD="eerror"
105 return 0
106 @@ -345,12 +345,12 @@ __eend() {
107 shift 2
108
109 if [[ ${retval} == "0" ]] ; then
110 - msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"
111 + msg="${PORTAGE_COLOR_BRACKET}[ ${PORTAGE_COLOR_GOOD}ok${PORTAGE_COLOR_BRACKET} ]${PORTAGE_COLOR_NORMAL}"
112 else
113 if [[ -n $* ]] ; then
114 ${efunc} "$*"
115 fi
116 - msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"
117 + msg="${PORTAGE_COLOR_BRACKET}[ ${PORTAGE_COLOR_BAD}!!${PORTAGE_COLOR_BRACKET} ]${PORTAGE_COLOR_NORMAL}"
118 fi
119
120 if [[ ${RC_ENDCOL} == "yes" ]] ; then
121 @@ -378,12 +378,12 @@ __unset_colors() {
122 COLS=80
123 ENDCOL=
124
125 - GOOD=
126 - WARN=
127 - BAD=
128 - NORMAL=
129 - HILITE=
130 - BRACKET=
131 + PORTAGE_COLOR_GOOD=
132 + PORTAGE_COLOR_WARN=
133 + PORTAGE_COLOR_BAD=
134 + PORTAGE_COLOR_HILITE=
135 + PORTAGE_COLOR_NORMAL=
136 + PORTAGE_COLOR_BRACKET=
137 }
138
139 __set_colors() {
140 @@ -403,12 +403,12 @@ __set_colors() {
141 if [ -n "${PORTAGE_COLORMAP}" ] ; then
142 eval ${PORTAGE_COLORMAP}
143 else
144 - GOOD=$'\e[32;01m'
145 - WARN=$'\e[33;01m'
146 - BAD=$'\e[31;01m'
147 - HILITE=$'\e[36;01m'
148 - BRACKET=$'\e[34;01m'
149 - NORMAL=$'\e[0m'
150 + PORTAGE_COLOR_GOOD=$'\e[32;01m'
151 + PORTAGE_COLOR_WARN=$'\e[33;01m'
152 + PORTAGE_COLOR_BAD=$'\e[31;01m'
153 + PORTAGE_COLOR_HILITE=$'\e[36;01m'
154 + PORTAGE_COLOR_BRACKET=$'\e[34;01m'
155 + PORTAGE_COLOR_NORMAL=$'\e[0m'
156 fi
157 }
158
159 diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
160 index 947ac79d5..8d2ec67ed 100644
161 --- a/bin/save-ebuild-env.sh
162 +++ b/bin/save-ebuild-env.sh
163 @@ -1,5 +1,5 @@
164 #!/bin/bash
165 -# Copyright 1999-2018 Gentoo Foundation
166 +# Copyright 1999-2021 Gentoo Authors
167 # Distributed under the terms of the GNU General Public License v2
168
169 # @FUNCTION: __save_ebuild_env
170 @@ -94,15 +94,17 @@ __save_ebuild_env() {
171 unset ${!___*}
172
173 # portage config variables and variables set directly by portage
174 - unset ACCEPT_LICENSE BAD BRACKET BUILD_PREFIX COLS \
175 + unset ACCEPT_LICENSE BUILD_PREFIX COLS \
176 DISTDIR DOC_SYMLINKS_DIR \
177 EBUILD_FORCE_TEST EBUILD_MASTER_PID \
178 ECLASS_DEPTH ENDCOL FAKEROOTKEY \
179 - GOOD HILITE HOME \
180 + HOME \
181 LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
182 - NOCOLOR NORMAL PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
183 - PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED PORTAGE_COMPRESS \
184 - PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
185 + NOCOLOR PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
186 + PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED \
187 + PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_GOOD \
188 + PORTAGE_COLOR_HILITE PORTAGE_COLOR_NORMAL PORTAGE_COLOR_WARN \
189 + PORTAGE_COMPRESS PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
190 PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS \
191 PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES \
192 PORTAGE_DOHTML_WARN_ON_SKIPPED_FILES \
193 @@ -113,7 +115,7 @@ __save_ebuild_env() {
194 QA_INTERCEPTORS \
195 RC_DEFAULT_INDENT RC_DOT_PATTERN RC_ENDCOL RC_INDENTATION \
196 ROOT ROOTPATH RPMDIR TEMP TMP TMPDIR USE_EXPAND \
197 - WARN XARGS _RC_GET_KV_CACHE
198 + XARGS _RC_GET_KV_CACHE
199
200 # user config variables
201 unset DOC_SYMLINKS_DIR INSTALL_MASK PKG_INSTALL_MASK
202 diff --git a/lib/portage/output.py b/lib/portage/output.py
203 index c1949717d..9d8601b24 100644
204 --- a/lib/portage/output.py
205 +++ b/lib/portage/output.py
206 @@ -1,4 +1,4 @@
207 -# Copyright 1998-2020 Gentoo Authors
208 +# Copyright 1998-2021 Gentoo Authors
209 # Distributed under the terms of the GNU General Public License v2
210
211 __docformat__ = "epytext"
212 @@ -378,7 +378,7 @@ def style_to_ansi_code(style):
213 def colormap():
214 mycolors = []
215 for c in ("GOOD", "WARN", "BAD", "HILITE", "BRACKET", "NORMAL"):
216 - mycolors.append("%s=$'%s'" % (c, style_to_ansi_code(c)))
217 + mycolors.append("PORTAGE_COLOR_{}=$'{}'".format(c, style_to_ansi_code(c)))
218 return "\n".join(mycolors)
219
220
221 --
222 2.33.0