Add support for an new "eblank" elog function that shows a blank line.
authorZac Medico <zmedico@gentoo.org>
Tue, 17 Jun 2008 03:32:04 +0000 (03:32 -0000)
committerZac Medico <zmedico@gentoo.org>
Tue, 17 Jun 2008 03:32:04 +0000 (03:32 -0000)
Consecutive eblank calls are all collapsed into a single blank line.
Thanks to Joe Peterson <lavajoe@g.o> for this patch.
(trunk r10675)

svn path=/main/branches/2.1.2/; revision=10676

bin/isolated-functions.sh
pym/output.py
pym/portage.py

index 42f3d5ac7f16ee3f4082a5c0efc656983f110380..dd157129d0fdb54c2adff19076ec19180064fbe7 100644 (file)
@@ -161,7 +161,7 @@ elog_base() {
        local messagetype
        [ -z "${1}" -o -z "${T}" -o ! -d "${T}/logging" ] && return 1
        case "${1}" in
-               INFO|WARN|ERROR|LOG|QA)
+               BLANK|INFO|WARN|ERROR|LOG|QA)
                        messagetype="${1}"
                        shift
                        ;;
@@ -174,15 +174,28 @@ elog_base() {
        return 0
 }
 
+eblank() {
+       [[ ${LAST_E_CMD} == "eblank" ]] && return 0
+       elog_base BLANK
+       [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
+       echo -e " ${NEUTRAL}*${NORMAL}"
+       LAST_E_CMD="eblank"
+       return 0
+}
+
 eqawarn() {
        elog_base QA "$*"
+       [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
        vecho -e " ${WARN}*${NORMAL} $*" >&2
+       LAST_E_CMD="eqawarn"
        return 0
 }
 
 elog() {
        elog_base LOG "$*"
+       [[ ${RC_ENDCOL} != "yes" && ${LAST_E_CMD} == "ebegin" ]] && echo
        echo -e " ${GOOD}*${NORMAL} $*"
+       LAST_E_CMD="elog"
        return 0
 }
 
@@ -281,6 +294,7 @@ eend() {
 
        _eend ${retval} eerror "$*"
 
+       LAST_E_CMD="eend"
        return ${retval}
 }
 
@@ -339,6 +353,7 @@ unset_colors() {
        COLS="25 80"
        ENDCOL=
 
+       NEUTRAL=
        GOOD=
        WARN=
        BAD=
@@ -361,6 +376,7 @@ set_colors() {
        if [ -n "${PORTAGE_COLORMAP}" ] ; then
                eval ${PORTAGE_COLORMAP}
        else
+               NEUTRAL=$'\e[37m'
                GOOD=$'\e[32;01m'
                WARN=$'\e[33;01m'
                BAD=$'\e[31;01m'
index c00ab00d4c7575cb9240796dc9cd809bdbcad52e..e53e74bfbf0e1fc8ea0605d42a4c03a70a1de01c 100644 (file)
@@ -132,6 +132,7 @@ codes["bg_darkyellow"] = codes["bg_brown"]
 
 # Colors from /etc/init.d/functions.sh
 codes["NORMAL"]     = esc_seq + "0m"
+codes["NEUTRAL"]    = codes["lightgray"]
 codes["GOOD"]       = codes["green"]
 codes["WARN"]       = codes["yellow"]
 codes["BAD"]        = codes["red"]
index 77ce475bd9e07833451b88396728aa46aed9d68d..f244f01535f245739be3db8c302b4270d9ccc047 100644 (file)
@@ -4462,7 +4462,7 @@ def doebuild_environment(myebuild, mydo, myroot, mysettings, debug, use_cache, m
 
        # Allow color.map to control colors associated with einfo, ewarn, etc...
        mycolors = []
-       for c in ("GOOD", "WARN", "BAD", "HILITE", "BRACKET"):
+       for c in ("NEUTRAL", "GOOD", "WARN", "BAD", "HILITE", "BRACKET"):
                mycolors.append("%s=$'%s'" % (c, output.codes[c]))
        mysettings["PORTAGE_COLORMAP"] = "\n".join(mycolors)