diff --git a/bootscripts/ChangeLog b/bootscripts/ChangeLog index 37680aff5..129fbd454 100644 --- a/bootscripts/ChangeLog +++ b/bootscripts/ChangeLog @@ -1,3 +1,7 @@ +2024-07-06 Bruce Dubbs + * Add logic to init-functions to only print escape sequences + if stdin and stdout are connected to a terminal. + 2024-04-16 Bruce Dubbs * Remove blank output line generated in ifup script when bringing up wireless interface. diff --git a/bootscripts/lfs/lib/services/init-functions b/bootscripts/lfs/lib/services/init-functions index a86a23d86..2bcadaa30 100644 --- a/bootscripts/lfs/lib/services/init-functions +++ b/bootscripts/lfs/lib/services/init-functions @@ -58,11 +58,21 @@ SCRIPT_STAT="0" # Set any user specified environment variables e.g. HEADLESS [ -r /etc/sysconfig/rc.site ] && . /etc/sysconfig/rc.site -## Screen Dimensions -# Find current screen size -if [ -z "${COLUMNS}" ]; then - COLUMNS=$(stty size) - COLUMNS=${COLUMNS##* } +# If HEADLESS is set, use that. +# If file descriptor 1 or 2 (stdout and stderr) is not open or +# does not refer to a terminal, consider the script headless. +[ ! -t 1 -o ! -t 2 ] && HEADLESS=${HEADLESS:-yes} + +if [ "x$HEADLESS" != "xyes" ] +then + ## Screen Dimensions + # Find current screen size + if [ -z "${COLUMNS}" ]; then + COLUMNS=$(stty size) + COLUMNS=${COLUMNS##* } + fi +else + COLUMNS=80 fi # When using remote connections, such as a serial port, stty size returns 0 @@ -575,9 +585,14 @@ timespec() ################################################################################ log_success_msg() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" - + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo -e "${logmessage} OK" + fi # Strip non-printable characters from log file logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` @@ -589,8 +604,13 @@ log_success_msg() log_success_msg2() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${SUCCESS_PREFIX}${SET_COL}${SUCCESS_SUFFIX}" + else + echo " OK" + fi echo " OK" >> ${BOOTLOG} @@ -610,8 +630,14 @@ log_success_msg2() ################################################################################ log_failure_msg() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo -e "${logmessage} FAIL" + fi # Strip non-printable characters from log file @@ -624,8 +650,13 @@ log_failure_msg() log_failure_msg2() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${FAILURE_PREFIX}${SET_COL}${FAILURE_SUFFIX}" + else + echo "FAIL" + fi echo "FAIL" >> ${BOOTLOG} @@ -643,8 +674,14 @@ log_failure_msg2() ################################################################################ log_warning_msg() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${WARNING_PREFIX}${SET_COL}${WARNING_SUFFIX}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo -e "${logmessage} WARN" + fi # Strip non-printable characters from log file logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` @@ -656,8 +693,14 @@ log_warning_msg() log_skip_msg() { - /bin/echo -n -e "${BMPREFIX}${@}" - /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + /bin/echo -e "${CURS_ZERO}${SKIP_PREFIX}${SET_COL}${SKIP_SUFFIX}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo "SKIP" + fi # Strip non-printable characters from log file logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` @@ -677,7 +720,13 @@ log_skip_msg() ################################################################################ log_info_msg() { - /bin/echo -n -e "${BMPREFIX}${@}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${BMPREFIX}${@}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo -n -e "${logmessage}" + fi # Strip non-printable characters from log file logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` @@ -689,7 +738,13 @@ log_info_msg() log_info_msg2() { - /bin/echo -n -e "${@}" + if [ "x$HEADLESS" != "xyes" ] + then + /bin/echo -n -e "${@}" + else + logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` + /bin/echo -n -e "${logmessage}" + fi # Strip non-printable characters from log file logmessage=`echo "${@}" | sed 's/\\\033[^a-zA-Z]*.//g'` diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 5b6e247e8..d6b242c1d 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -40,6 +40,16 @@ appropriate for the entry or if needed the entire day's listitem. --> + + 2024-07-01 + + + [bdubbs] - Update lfs-bootscripts to only output + escape sequences to a terminal. + + + + 2024-07-01 diff --git a/packages.ent b/packages.ent index df9fcf37a..fd27c3387 100644 --- a/packages.ent +++ b/packages.ent @@ -391,7 +391,7 @@ - +