Cedric Staniewski wrote:
Allan McRae wrote:
Dan McGee wrote:
On Thu, Oct 22, 2009 at 7:41 PM, Allan McRae <[email protected]> wrote:
Cedric Staniewski wrote:
Suggested-by: Dan McGee <[email protected]>
Signed-off-by: Cedric Staniewski <[email protected]>
---

I do not know if this patch is usefull at all, because I do not
notice any
change. Just grabbed this from Dan's TODO list and wanted to play a bit
with tput.

It looks fine to me...
I just have no idea on the advantage we are achieving with this
change apart
from the apparent terminal safeness.  Was the old version not safe?

Dan: comments?
First comment- that TODO list is still huge, wow. :)

Hehe. :)


Anyway, this seems pretty reasonable to me, but not sure it is worth
it. At the least, we should capture these sequences once on script
startup, and then use the global variable in each function. And does
$(tput offbold) make more sense for the reset?
There does not appear to be such a thing as "tput offbold".

Anyway, I like the idea of setting these all at the start.

if [ $COLORMSG -eq 1 ]; then
 BOLD_ON=$(tput bold)
 BOLD_OFF=${tput srg0)
 GREEN_ON...
 ...
fi

then the messages can just be

plain() {
    local mesg=$1; shift
        printf "${BOLD_ON}    ${mesg}${BOLD_OFF}\n" "$@" >&2
    fi
}


with none of the tests needed.

Allan

That definitely makes sense.
If you think the attached patch is fine, I plan to change the order of these 
two ones and resubmit them.


>From 50901c551ddefb9a5eca500ac63ab0a0c7eef167 Mon Sep 17 00:00:00 2001
From: Cedric Staniewski <[email protected]>
Date: Fri, 23 Oct 2009 12:27:54 +0200
-- 8< --
Subject: [PATCH] makepkg: define the required escape sequences globally

In doing so, it is possible to get rid of all the tests for colored
messages except for one global one.

Signed-off-by: Cedric Staniewski <[email protected]>
---
 scripts/makepkg.sh.in |   42 +++++++++++++++---------------------------
 1 files changed, 15 insertions(+), 27 deletions(-)

diff --git a/scripts/makepkg.sh.in b/scripts/makepkg.sh.in
index a64a867..b89acdb 100644
--- a/scripts/makepkg.sh.in
+++ b/scripts/makepkg.sh.in
@@ -72,7 +72,6 @@ IGNOREARCH=0
 HOLDVER=0
 PKGFUNC=0
 SPLITPKG=0
-COLORMSG=0
# Forces the pkgver of the current PKGBUILD. Used by the fakeroot call
 # when dealing with svn/cvs/etc PKGBUILDs.
@@ -84,47 +83,27 @@ PACMAN_OPTS=
plain() {
        local mesg=$1; shift
-       if [ $COLORMSG -eq 1 ]; then
-               printf "$(tput bold)    ${mesg}$(tput sgr0)\n" "$@" >&2
-       else
-               printf "    ${mesg}\n" "$@" >&2
-       fi
+       printf "${BOLD}    ${mesg}${ALL_OFF}\n" "$@" >&2
 }
msg() {
        local mesg=$1; shift
-       if [ $COLORMSG -eq 1 ]; then
-               printf "$(echo -e "bold\nsetaf 2" | tput -S)==>$(echo -e "sgr0\nbold" | tput -S) 
${mesg}$(tput sgr0)\n" "$@" >&2
-       else
-               printf "==> ${mesg}\n" "$@" >&2
-       fi
+       printf "${GREEN}==>${ALL_OFF_BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
 }
msg2() {
        local mesg=$1; shift
-       if [ $COLORMSG -eq 1 ]; then
-               printf "$(echo -e "bold\nsetaf 4" | tput -S)  ->$(echo -e "sgr0\nbold" | tput -S) 
${mesg}$(tput sgr0)\n" "$@" >&2
-       else
-               printf "  -> ${mesg}\n" "$@" >&2
-       fi
+       printf "${BLUE}  ->${ALL_OFF_BOLD} ${mesg}${ALL_OFF}\n" "$@" >&2
 }
warning() {
        local mesg=$1; shift
-       if [ $COLORMSG -eq 1 ]; then
-               printf "$(echo -e "bold\nsetaf 3" | tput -S)==> $(gettext "WARNING:")$(echo -e 
"sgr0\nbold" | tput -S) ${mesg}$(tput sgr0)\n" "$@" >&2
-       else
-               printf "==> $(gettext "WARNING:") ${mesg}\n" "$@" >&2
-       fi
+       printf "${YELLOW}==> $(gettext "WARNING:")${ALL_OFF_BOLD} ${mesg}${ALL_OFF}\n" 
"$@" >&2
 }
error() {
        local mesg=$1; shift
-       if [ $COLORMSG -eq 1 ]; then
-               printf "$(echo -e "bold\nsetaf 1" | tput -S)==> $(gettext "ERROR:")$(echo -e 
"sgr0\nbold" | tput -S) ${mesg}$(tput sgr0)\n" "$@" >&2
-       else
-               printf "==> $(gettext "ERROR:") ${mesg}\n" "$@" >&2
-       fi
+       printf "${RED}==> $(gettext "ERROR:")${ALL_OFF_BOLD} ${mesg}${ALL_OFF}\n" "$@" 
>&2
 }
@@ -1576,7 +1555,16 @@ fi # check if messages are to be printed using color
 if [ -t 2 -a ! "$USE_COLOR" = "n" -a "$(check_buildenv color)" = "y" ]; then
-       COLORMSG=1
+       readonly ALL_OFF="$(tput sgr0)" \
+                                               BOLD="$(tput bold)"
+       readonly ALL_OFF_BOLD="${ALL_OFF}${BOLD}" \
+                                               RED="${BOLD}$(tput setaf 1)" \
+                                               BLUE="${BOLD}$(tput setaf 4)" \
+                                               GREEN="${BOLD}$(tput setaf 2)" \
+                                               YELLOW="${BOLD}$(tput setaf 3)"
+else
+       unset ALL_OFF ALL_OFF_BOLD BOLD RED BLUE GREEN YELLOW
+       readonly ALL_OFF ALL_OFF_BOLD BOLD RED BLUE GREEN YELLOW
 fi
# override settings with an environment variable for batch processing

That looks good to me. Feel free to tidy it as you see fit and forward the patch.

Allan


Reply via email to