Author: dnicholson
Date: 2007-02-22 15:29:24 -0700 (Thu, 22 Feb 2007)
New Revision: 7928

Modified:
   trunk/bootscripts/ChangeLog
   trunk/bootscripts/lfs/init.d/console
   trunk/bootscripts/lfs/init.d/functions
Log:
Feature test for `echo -[en]' for POSIX compatibility


Modified: trunk/bootscripts/ChangeLog
===================================================================
--- trunk/bootscripts/ChangeLog 2007-02-21 03:44:06 UTC (rev 7927)
+++ trunk/bootscripts/ChangeLog 2007-02-22 22:29:24 UTC (rev 7928)
@@ -1,3 +1,11 @@
+2007-02-22     Dan Nicholson   <[EMAIL PROTECTED]>
+       * lfs/init.d/functions: In order to provide an `echo' which provides
+         handles the -e and -n options for all POSIX shells, a feature test
+         is added which stores its result in $ECHO. /bin/echo will be used
+         if the default echo is not capable. Changed the existing functions
+         to reference $ECHO when needed.
+       * lfs/init.d/console: Use $ECHO when -en is needed.
+
 2007-02-03     Bryan Kadzban   <[EMAIL PROTECTED]>
        * ChangeLog: Rename from CHANGELOG, start using GNU style entries.
 

Modified: trunk/bootscripts/lfs/init.d/console
===================================================================
--- trunk/bootscripts/lfs/init.d/console        2007-02-21 03:44:06 UTC (rev 
7927)
+++ trunk/bootscripts/lfs/init.d/console        2007-02-22 22:29:24 UTC (rev 
7928)
@@ -42,8 +42,8 @@
                # Figure out the command to set the console into the
                # desired mode
                is_true "${UNICODE}" &&
-                       MODE_COMMAND="echo -en '\033%G' && kbd_mode -u" ||
-                       MODE_COMMAND="echo -en '[EMAIL PROTECTED](K' && 
kbd_mode -a"
+                       MODE_COMMAND="${ECHO} -en '\033%G' && kbd_mode -u" ||
+                       MODE_COMMAND="${ECHO} -en '[EMAIL PROTECTED](K' && 
kbd_mode -a"
                
                # On framebuffer consoles, font has to be set for each vt in
                # UTF-8 mode. This doesn't hurt in non-UTF-8 mode also.

Modified: trunk/bootscripts/lfs/init.d/functions
===================================================================
--- trunk/bootscripts/lfs/init.d/functions      2007-02-21 03:44:06 UTC (rev 
7927)
+++ trunk/bootscripts/lfs/init.d/functions      2007-02-22 22:29:24 UTC (rev 
7928)
@@ -40,12 +40,23 @@
 COL=$((${COLUMNS} - 8))
 WCOL=$((${COL} - 2))
 
-## Set Cursor Position Commands, used via echo -e
+## Provide an echo that supports -e and -n
+# If formatting is needed, $ECHO should be used
+case "`echo -e -n test`" in
+       -[en]*)
+               ECHO=/bin/echo
+               ;;
+       *)
+               ECHO=echo
+               ;;
+esac
+
+## Set Cursor Position Commands, used via $ECHO
 SET_COL="\\033[${COL}G"      # at the $COL char
 SET_WCOL="\\033[${WCOL}G"    # at the $WCOL char
 CURS_UP="\\033[1A\\033[0G"   # Up one line, at the 0'th char
 
-## Set color commands, used via echo -e
+## Set color commands, used via $ECHO
 # Please consult `man console_codes for more information
 # under the "ECMA-48 Set Graphics Rendition" section
 #
@@ -104,7 +115,7 @@
                -e 's,.,.,g' -e 'l 1' | grep -c \$`"
 
        # Print the message to the screen
-       echo ${ECHOPARM} -e "${2}${1}"
+       ${ECHO} ${ECHOPARM} -e "${2}${1}"
        
 }
 
@@ -117,27 +128,27 @@
 boot_log()
 {
        # Left in for backwards compatibility
-       echo -n ""
+       :
 }
 
 echo_ok()
 {
-       echo -n -e "${CURS_UP}${SET_COL}${BRACKET}[${SUCCESS}  OK  ${BRACKET}]"
-       echo -e "${NORMAL}"
+       ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${SUCCESS}  OK  
${BRACKET}]"
+       ${ECHO} -e "${NORMAL}"
         boot_mesg_flush
 }
 
 echo_failure()
 {
-       echo -n -e "${CURS_UP}${SET_COL}${BRACKET}[${FAILURE} FAIL ${BRACKET}]"
-       echo -e "${NORMAL}"
+       ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${FAILURE} FAIL 
${BRACKET}]"
+       ${ECHO} -e "${NORMAL}"
         boot_mesg_flush
 }
 
 echo_warning()
 {
-       echo -n -e "${CURS_UP}${SET_COL}${BRACKET}[${WARNING} WARN ${BRACKET}]"
-       echo -e "${NORMAL}"
+       ${ECHO} -n -e "${CURS_UP}${SET_COL}${BRACKET}[${WARNING} WARN 
${BRACKET}]"
+       ${ECHO} -e "${NORMAL}"
         boot_mesg_flush
 }
 
@@ -209,20 +220,20 @@
                        # may call it this way.
                        case "${2}" in
                                running)
-                                       echo -e -n "${CURS_UP}"
-                                       echo -e -n "\\033[${STRING_LENGTH}G   "
+                                       ${ECHO} -e -n "${CURS_UP}"
+                                       ${ECHO} -e -n "\\033[${STRING_LENGTH}G  
 "
                                        boot_mesg "Already running." ${WARNING}
                                        echo_warning
                                        ;;
                                not_running)
-                                       echo -e -n "${CURS_UP}"
-                                       echo -e -n "\\033[${STRING_LENGTH}G   "
+                                       ${ECHO} -e -n "${CURS_UP}"
+                                       ${ECHO} -e -n "\\033[${STRING_LENGTH}G  
 "
                                        boot_mesg "Not running." ${WARNING}
                                        echo_warning
                                        ;;
                                not_available)
-                                       echo -e -n "${CURS_UP}"
-                                       echo -e -n "\\033[${STRING_LENGTH}G   "
+                                       ${ECHO} -e -n "${CURS_UP}"
+                                       ${ECHO} -e -n "\\033[${STRING_LENGTH}G  
 "
                                        boot_mesg "Not available." ${WARNING}
                                        echo_warning
                                        ;;
@@ -278,18 +289,18 @@
        getpids "${1}"
 
        if [ -n "${pidlist}" ]; then
-               echo -e "${INFO}${base} is running with Process"\
+               ${ECHO} -e "${INFO}${base} is running with Process"\
                        "ID(s) ${pidlist}.${NORMAL}"
        else
                if [ -n "${base}" -a -e "/var/run/${base}.pid" ]; then
-                       echo -e "${WARNING}${1} is not running but"\
+                       ${ECHO} -e "${WARNING}${1} is not running but"\
                                "/var/run/${base}.pid exists.${NORMAL}"
                else
                        if [ -n "${PIDFILE}" -a -e "${PIDFILE}" ]; then
-                               echo -e "${WARNING}${1} is not running"\
+                               ${ECHO} -e "${WARNING}${1} is not running"\
                                        "but ${PIDFILE} exists.${NORMAL}"
                        else
-                               echo -e "${INFO}${1} is not running.${NORMAL}"
+                               ${ECHO} -e "${INFO}${1} is not 
running.${NORMAL}"
                        fi
                fi
        fi
@@ -634,8 +645,8 @@
 
#*******************************************************************************
 log_success_msg()
 {
-       echo -n -e "[EMAIL PROTECTED]"
-       echo -e "${SET_COL}""${BRACKET}""[""${SUCCESS}""  OK  
""${BRACKET}""]""${NORMAL}"
+       ${ECHO} -n -e "[EMAIL PROTECTED]"
+       ${ECHO} -e "${SET_COL}""${BRACKET}""[""${SUCCESS}""  OK  
""${BRACKET}""]""${NORMAL}"
        return 0
 }
 
@@ -654,8 +665,8 @@
 #
 
#*******************************************************************************
 log_failure_msg() {
-       echo -n -e "[EMAIL PROTECTED]"
-       echo -e "${SET_COL}""${BRACKET}""[""${FAILURE}"" FAIL 
""${BRACKET}""]""${NORMAL}"
+       ${ECHO} -n -e "[EMAIL PROTECTED]"
+       ${ECHO} -e "${SET_COL}""${BRACKET}""[""${FAILURE}"" FAIL 
""${BRACKET}""]""${NORMAL}"
        return 0
 }
 
@@ -674,8 +685,8 @@
 #
 
#*******************************************************************************
 log_warning_msg() {
-       echo -n -e "[EMAIL PROTECTED]"
-       echo -e "${SET_COL}""${BRACKET}""[""${WARNING}"" WARN 
""${BRACKET}""]""${NORMAL}"
+       ${ECHO} -n -e "[EMAIL PROTECTED]"
+       ${ECHO} -e "${SET_COL}""${BRACKET}""[""${WARNING}"" WARN 
""${BRACKET}""]""${NORMAL}"
        return 0
 }
 

-- 
http://linuxfromscratch.org/mailman/listinfo/lfs-book
FAQ: http://www.linuxfromscratch.org/lfs/faq.html
Unsubscribe: See the above information page

Reply via email to