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