commit:     3ab738a7a5a81ee3d5b973e93a4d93f6e497a321
Author:     Michał Górny <mgorny <AT> gentoo <DOT> org>
AuthorDate: Tue Sep 28 12:50:52 2021 +0000
Commit:     Michał Górny <mgorny <AT> gentoo <DOT> org>
CommitDate: Mon Oct  4 07:27:46 2021 +0000
URL:        https://gitweb.gentoo.org/proj/portage.git/commit/?id=3ab738a7

Use distinct colors for output msg types

Introduce distinct colors per output function.  For elog and eerror
the colors remain the same but the names change.  For einfo and eqawarn,
use darker colors to distinguish them.

Signed-off-by: Michał Górny <mgorny <AT> gentoo.org>

 bin/isolated-functions.sh    | 30 +++++++++++++---------
 bin/save-ebuild-env.sh       |  6 +++--
 lib/portage/elog/messages.py | 10 ++++----
 lib/portage/elog/mod_echo.py |  4 +--
 lib/portage/output.py        | 59 ++++++++++++++++++++++++++++++++++++++------
 5 files changed, 81 insertions(+), 28 deletions(-)

diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
index 3e79ea6e3..df806d403 100644
--- a/bin/isolated-functions.sh
+++ b/bin/isolated-functions.sh
@@ -270,7 +270,7 @@ eqawarn() {
        __elog_base QA "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
        echo -e "$@" | while read -r ; do
-               echo " ${PORTAGE_COLOR_WARN}*${PORTAGE_COLOR_NORMAL} ${REPLY}" 
>&2
+               echo " ${PORTAGE_COLOR_QAWARN}*${PORTAGE_COLOR_NORMAL} 
${REPLY}" >&2
        done
        LAST_E_CMD="eqawarn"
        return 0
@@ -280,7 +280,7 @@ elog() {
        __elog_base LOG "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
        echo -e "$@" | while read -r ; do
-               echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" 
>&2
+               echo " ${PORTAGE_COLOR_LOG}*${PORTAGE_COLOR_NORMAL} ${REPLY}" 
>&2
        done
        LAST_E_CMD="elog"
        return 0
@@ -290,7 +290,7 @@ einfo() {
        __elog_base INFO "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
        echo -e "$@" | while read -r ; do
-               echo " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} ${REPLY}" 
>&2
+               echo " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} ${REPLY}" 
>&2
        done
        LAST_E_CMD="einfo"
        return 0
@@ -299,7 +299,7 @@ einfo() {
 einfon() {
        __elog_base INFO "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
-       echo -ne " ${PORTAGE_COLOR_GOOD}*${PORTAGE_COLOR_NORMAL} $*" >&2
+       echo -ne " ${PORTAGE_COLOR_INFO}*${PORTAGE_COLOR_NORMAL} $*" >&2
        LAST_E_CMD="einfon"
        return 0
 }
@@ -318,7 +318,7 @@ eerror() {
        __elog_base ERROR "$*"
        [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo >&2
        echo -e "$@" | while read -r ; do
-               echo " ${PORTAGE_COLOR_BAD}*${PORTAGE_COLOR_NORMAL} 
${RC_INDENTATION}${REPLY}" >&2
+               echo " ${PORTAGE_COLOR_ERR}*${PORTAGE_COLOR_NORMAL} 
${RC_INDENTATION}${REPLY}" >&2
        done
        LAST_E_CMD="eerror"
        return 0
@@ -378,12 +378,16 @@ __unset_colors() {
        COLS=80
        ENDCOL=
 
-       PORTAGE_COLOR_GOOD=
-       PORTAGE_COLOR_WARN=
        PORTAGE_COLOR_BAD=
+       PORTAGE_COLOR_BRACKET=
+       PORTAGE_COLOR_ERR=
+       PORTAGE_COLOR_GOOD=
        PORTAGE_COLOR_HILITE=
+       PORTAGE_COLOR_INFO=
+       PORTAGE_COLOR_LOG=
        PORTAGE_COLOR_NORMAL=
-       PORTAGE_COLOR_BRACKET=
+       PORTAGE_COLOR_QAWARN=
+       PORTAGE_COLOR_WARN=
 }
 
 __set_colors() {
@@ -403,12 +407,16 @@ __set_colors() {
        if [ -n "${PORTAGE_COLORMAP}" ] ; then
                eval ${PORTAGE_COLORMAP}
        else
-               PORTAGE_COLOR_GOOD=$'\e[32;01m'
-               PORTAGE_COLOR_WARN=$'\e[33;01m'
                PORTAGE_COLOR_BAD=$'\e[31;01m'
-               PORTAGE_COLOR_HILITE=$'\e[36;01m'
                PORTAGE_COLOR_BRACKET=$'\e[34;01m'
+               PORTAGE_COLOR_ERR=$'\e[31;01m'
+               PORTAGE_COLOR_GOOD=$'\e[32;01m'
+               PORTAGE_COLOR_HILITE=$'\e[36;01m'
+               PORTAGE_COLOR_INFO=$'\e[32m'
+               PORTAGE_COLOR_LOG=$'\e[32;01m'
                PORTAGE_COLOR_NORMAL=$'\e[0m'
+               PORTAGE_COLOR_QAWARN=$'\e[33m'
+               PORTAGE_COLOR_WARN=$'\e[33;01m'
        fi
 }
 

diff --git a/bin/save-ebuild-env.sh b/bin/save-ebuild-env.sh
index 8d2ec67ed..98808814b 100644
--- a/bin/save-ebuild-env.sh
+++ b/bin/save-ebuild-env.sh
@@ -102,8 +102,10 @@ __save_ebuild_env() {
                LAST_E_CMD LAST_E_LEN LD_PRELOAD MISC_FUNCTIONS_ARGS MOPREFIX \
                NOCOLOR PKGDIR PKGUSE PKG_LOGDIR PKG_TMPDIR \
                PORTAGE_BASHRC_FILES PORTAGE_BASHRCS_SOURCED \
-               PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_GOOD \
-               PORTAGE_COLOR_HILITE PORTAGE_COLOR_NORMAL PORTAGE_COLOR_WARN \
+               PORTAGE_COLOR_BAD PORTAGE_COLOR_BRACKET PORTAGE_COLOR_ERR \
+               PORTAGE_COLOR_GOOD PORTAGE_COLOR_HILITE PORTAGE_COLOR_INFO \
+               PORTAGE_COLOR_LOG PORTAGE_COLOR_NORMAL PORTAGE_COLOR_QAWARN \
+               PORTAGE_COLOR_WARN \
                PORTAGE_COMPRESS PORTAGE_COMPRESS_EXCLUDE_SUFFIXES \
                PORTAGE_DOHTML_UNWARNED_SKIPPED_EXTENSIONS \
                PORTAGE_DOHTML_UNWARNED_SKIPPED_FILES \

diff --git a/lib/portage/elog/messages.py b/lib/portage/elog/messages.py
index 923e10b69..6a67a45de 100644
--- a/lib/portage/elog/messages.py
+++ b/lib/portage/elog/messages.py
@@ -125,7 +125,7 @@ def _elog_base(level, msg, phase="other", key=None, 
color=None, out=None):
         out = sys.stdout
 
     if color is None:
-        color = "GOOD"
+        color = "INFO"
 
     msg = _unicode_decode(msg, encoding=_encodings["content"], 
errors="replace")
 
@@ -183,11 +183,11 @@ def _reset_buffer():
 
 # creating and exporting the actual messaging functions
 _functions = {
-    "einfo": ("INFO", "GOOD"),
-    "elog": ("LOG", "GOOD"),
+    "einfo": ("INFO", "INFO"),
+    "elog": ("LOG", "LOG"),
     "ewarn": ("WARN", "WARN"),
-    "eqawarn": ("QA", "WARN"),
-    "eerror": ("ERROR", "BAD"),
+    "eqawarn": ("QA", "QAWARN"),
+    "eerror": ("ERROR", "ERR"),
 }
 
 

diff --git a/lib/portage/elog/mod_echo.py b/lib/portage/elog/mod_echo.py
index fa9203c32..a63939988 100644
--- a/lib/portage/elog/mod_echo.py
+++ b/lib/portage/elog/mod_echo.py
@@ -60,10 +60,10 @@ def _finalize():
             for msgtype, msgcontent in logentries[phase]:
                 fmap = {
                     "INFO": printer.einfo,
+                    "LOG": printer.elog,
                     "WARN": printer.ewarn,
                     "ERROR": printer.eerror,
-                    "LOG": printer.einfo,
-                    "QA": printer.ewarn,
+                    "QA": printer.eqawarn,
                 }
                 if isinstance(msgcontent, str):
                     msgcontent = [msgcontent]

diff --git a/lib/portage/output.py b/lib/portage/output.py
index 9d8601b24..42f487f8a 100644
--- a/lib/portage/output.py
+++ b/lib/portage/output.py
@@ -140,12 +140,16 @@ codes["darkyellow"] = codes["0xAAAA00"]
 
 
 # Colors from /etc/init.d/functions.sh
-_styles["NORMAL"] = ("normal",)
-_styles["GOOD"] = ("green",)
-_styles["WARN"] = ("yellow",)
 _styles["BAD"] = ("red",)
-_styles["HILITE"] = ("teal",)
 _styles["BRACKET"] = ("blue",)
+_styles["ERR"] = ("red",)
+_styles["GOOD"] = ("green",)
+_styles["HILITE"] = ("teal",)
+_styles["INFO"] = ("darkgreen",)
+_styles["LOG"] = ("green",)
+_styles["NORMAL"] = ("normal",)
+_styles["QAWARN"] = ("brown",)
+_styles["WARN"] = ("yellow",)
 
 # Portage functions
 _styles["INFORM"] = ("darkgreen",)
@@ -377,7 +381,18 @@ def style_to_ansi_code(style):
 
 def colormap():
     mycolors = []
-    for c in ("GOOD", "WARN", "BAD", "HILITE", "BRACKET", "NORMAL"):
+    for c in (
+        "BAD",
+        "BRACKET",
+        "ERR",
+        "GOOD",
+        "HILITE",
+        "INFO",
+        "LOG",
+        "NORMAL",
+        "QAWARN",
+        "WARN",
+    ):
         mycolors.append("PORTAGE_COLOR_{}=$'{}'".format(c, 
style_to_ansi_code(c)))
     return "\n".join(mycolors)
 
@@ -665,7 +680,7 @@ class EOutput:
         if not self.quiet:
             if self.__last_e_cmd == "ebegin":
                 self._write(out, "\n")
-            self._write(out, colorize("BAD", " * ") + msg + "\n")
+            self._write(out, colorize("ERR", " * ") + msg + "\n")
         self.__last_e_cmd = "eerror"
 
     def einfo(self, msg):
@@ -679,7 +694,7 @@ class EOutput:
         if not self.quiet:
             if self.__last_e_cmd == "ebegin":
                 self._write(out, "\n")
-            self._write(out, colorize("GOOD", " * ") + msg + "\n")
+            self._write(out, colorize("INFO", " * ") + msg + "\n")
         self.__last_e_cmd = "einfo"
 
     def einfon(self, msg):
@@ -693,9 +708,37 @@ class EOutput:
         if not self.quiet:
             if self.__last_e_cmd == "ebegin":
                 self._write(out, "\n")
-            self._write(out, colorize("GOOD", " * ") + msg)
+            self._write(out, colorize("INFO", " * ") + msg)
         self.__last_e_cmd = "einfon"
 
+    def eqawarn(self, msg):
+        """
+        Shows a QA warning.
+
+        @param msg: A very brief (shorter than one line) warning message.
+        @type msg: StringType
+        """
+        out = sys.stderr
+        if not self.quiet:
+            if self.__last_e_cmd == "ebegin":
+                self._write(out, "\n")
+            self._write(out, colorize("QAWARN", " * ") + msg + "\n")
+        self.__last_e_cmd = "ewarn"
+
+    def elog(self, msg):
+        """
+        Shows a logged informative message terminated with a newline.
+
+        @param msg: A very brief (shorter than one line) informative message.
+        @type msg: StringType
+        """
+        out = sys.stdout
+        if not self.quiet:
+            if self.__last_e_cmd == "ebegin":
+                self._write(out, "\n")
+            self._write(out, colorize("LOG", " * ") + msg + "\n")
+        self.__last_e_cmd = "elog"
+
     def ewarn(self, msg):
         """
         Shows a warning message.

Reply via email to