/etc/grml/lsb-functions: support disabling colors through $NOCOLORS
[grml-etc-core.git] / etc / grml / lsb-functions
index b9be507..d72076f 100644 (file)
@@ -105,7 +105,7 @@ log_end_msg() {
             COL=73
         fi
         UP="$("$TPUT" cuu1)"
-        END="$("$TPUT" hpa $COL)"
+        END="$("$TPUT" hpa "$COL")"
         START="$("$TPUT" hpa 0)"
         #RED="$("$TPUT" setaf 1)"
         #NORMAL="$("$TPUT" op)"
@@ -128,44 +128,51 @@ log_end_msg() {
 # Distributed under the terms of the GNU General Public License v2
 # $Header: /var/cvsroot/gentoo-src/rc-scripts/sbin/functions.sh,v 1.81.2.6 2005/05/15 20:00:31 vapier Exp $
 
-RC_GOT_FUNCTIONS="yes"
-
-# Different types of dependencies
-deptypes="need use"
-# Different types of order deps
-ordtypes="before after"
-
-#
 # Internal variables
-#
 
 # Dont output to stdout?
 RC_QUIET_STDOUT="no"
-RC_VERBOSE="${RC_VERBOSE:-no}"
+
+# Default values for e-message indentation and dots
+RC_INDENTATION=''
+RC_DEFAULT_INDENT=2
+#RC_DOT_PATTERN=' .'
+RC_DOT_PATTERN=''
 
 # Should we use color?
 if [ -r /proc/cmdline ] ; then
     grep -q ' nocolor' /proc/cmdline && RC_NOCOLOR='yes'
 fi
+[ -n "$NOCOLORS" ] && RC_NOCOLOR='yes'
 RC_NOCOLOR="${RC_NOCOLOR:-no}"
+
 # Can the terminal handle endcols?
 RC_ENDCOL="yes"
 
-#
-# Default values for rc system
-#
-RC_TTY_NUMBER=11
-RC_NET_STRICT_CHECKING="no"
-RC_PARALLEL_STARTUP="no"
-RC_USE_CONFIG_PROFILE="yes"
+# Setup COLS and ENDCOL so eend can line up the [ ok ]
+# width of [ ok ] == 7
+COLS="$(stty size 2>/dev/null | cut -d' ' -f2)"
+if [ -z "${COLS}" ] || [ "${COLS}" -le 0 ] ; then
+    COLS=80
+fi
 
-#
-# Default values for e-message indentation and dots
-#
-RC_INDENTATION=''
-RC_DEFAULT_INDENT=2
-#RC_DOT_PATTERN=' .'
-RC_DOT_PATTERN=''
+if [ "${RC_ENDCOL}" = "yes" ]; then
+    ENDCOL="\e[A\e[$(( "${COLS}" - 8 ))G"
+else
+    ENDCOL=''
+fi
+
+# Setup the colors so our messages all look pretty
+if [ "${RC_NOCOLOR}" = "yes" ]; then
+    unset GOOD WARN BAD NORMAL HILITE BRACKET
+else
+    GOOD='\e[32;01m'
+    WARN='\e[33;01m'
+    BAD='\e[31;01m'
+    NORMAL='\e[0m'
+    HILITE='\e[36;01m'
+    BRACKET='\e[34;01m'
+fi
 
 # void esyslog(char* priority, char* tag, char* message)
 #
@@ -175,15 +182,14 @@ esyslog() {
     local pri
     local tag
 
-    if [ -x /usr/bin/logger ]
-    then
+    if [ -x /usr/bin/logger ] ; then
         pri="$1"
         tag="$2"
 
         shift 2
-        [ -z "$*" ] && return 0
+        [ "$#" -eq 0 ] && return 0
 
-        /usr/bin/logger -p "${pri}" -t "${tag}" -- "$*"
+        /usr/bin/logger -p "${pri}" -t "${tag}" -- "$@"
     fi
 
     return 0
@@ -194,9 +200,9 @@ esyslog() {
 #    increase the indent used for e-commands.
 #
 eindent() {
-    local i=$1
-    (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
-    esetdent $(( ${#RC_INDENTATION} + i ))
+    local i="$1"
+    [ "$i" -gt 0 ] || i="${RC_DEFAULT_INDENT}"
+    esetdent $(( ${#RC_INDENTATION} + "$i" ))
 }
 
 # void eoutdent(int num)
@@ -204,9 +210,9 @@ eindent() {
 #    decrease the indent used for e-commands.
 #
 eoutdent() {
-    local i=$1
-    (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
-    esetdent $(( ${#RC_INDENTATION} - i ))
+    local i="$1"
+    [ "$i" -gt 0 ] || i="${RC_DEFAULT_INDENT}"
+    esetdent $(( ${#RC_INDENTATION} - "$i" ))
 }
 
 # void esetdent(int num)
@@ -215,9 +221,9 @@ eoutdent() {
 #    num defaults to 0
 #
 esetdent() {
-    local i=$1
-    (( i < 0 )) && (( i = 0 ))
-    RC_INDENTATION=$(printf "%${i}s" '')
+    local i="$1"
+    [ "$i" -lt 0 ] && i=0
+    RC_INDENTATION="$(printf "%${i}s" '')"
 }
 
 # void einfo(char* message)
@@ -255,7 +261,7 @@ ewarn() {
     fi
 
     # Log warnings to system log
-    esyslog "daemon.warning" "rc-scripts" "$*"
+    esyslog "daemon.warning" "rc-scripts" "$@"
 
     LAST_E_CMD=ewarn
     return 0
@@ -274,7 +280,7 @@ eerror() {
     fi
 
     # Log errors to system log
-    esyslog "daemon.err" "rc-scripts" "$*"
+    esyslog "daemon.err" "rc-scripts" "$@"
 
     LAST_E_CMD=eerror
     return 0
@@ -285,12 +291,12 @@ eerror() {
 #    show a message indicating the start of a process
 #
 ebegin() {
-    local msg="$*" dots spaces
+    local msg="$@" dots spaces
     spaces="$(printf '%'"${#RC_DOT_PATTERN}"'s' '')"
     [ "${RC_QUIET_STDOUT}" = "yes" ] && return 0
 
     if [ -n "${RC_DOT_PATTERN}" ]; then
-        dots=$(printf "%$(( COLS - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" '')
+        dots="$(printf "%$(( "$COLS" - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" '')"
         while [ "${dots#${spaces}}" != "${dots}" ] ; do
             dots="${dots#${spaces}}${RC_DOT_PATTERN}"
         done
@@ -315,15 +321,15 @@ ebegin() {
 #    script.
 #
 _eend() {
-    local retval=${1:-0} efunc=${2:-eerror} msg
+    local retval="${1:-0}" efunc="${2:-eerror}" msg
     shift 2
 
     if [ "${retval}" -eq 0 ]; then
         [ "${RC_QUIET_STDOUT}" = "yes" ] && return 0
         msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"
     else
-        if [ -n "$*" ]; then
-            "${efunc}" "$*"
+        if [ "$#" -gt 0 ] ; then
+            "${efunc}" "$@"
         fi
         msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"
     fi
@@ -335,7 +341,7 @@ _eend() {
         printf "%$(( "${COLS}" - "${LAST_E_LEN}" - 6 ))s%b\n" '' "${msg}"
     fi
 
-    return ${retval}
+    return "${retval}"
 }
 
 # void eend(int error, char* errstr)
@@ -344,13 +350,13 @@ _eend() {
 #    if error, show errstr via eerror
 #
 eend() {
-    local retval=${1:-0}
+    local retval="${1:-0}"
     shift
 
-    _eend ${retval} eerror "$*"
+    _eend "${retval}" eerror "$@"
 
     LAST_E_CMD=eend
-    return $retval
+    return "$retval"
 }
 
 # void ewend(int error, char* errstr)
@@ -359,166 +365,13 @@ eend() {
 #    if error, show errstr via ewarn
 #
 ewend() {
-    local retval=${1:-0}
+    local retval="${1:-0}"
     shift
 
-    _eend ${retval} ewarn "$*"
+    _eend "${retval}" ewarn "$@"
 
     LAST_E_CMD=ewend
-    return $retval
+    return "$retval"
 }
 
-# bool get_bootparam(param)
-#
-#   return 0 if gentoo=param was passed to the kernel
-#
-#   EXAMPLE:  if get_bootparam "nodevfs" ; then ....
-#
-get_bootparam() {
-    local x copt params retval=1
-
-    [ ! -r "/proc/cmdline" ] && return 1
-
-    for copt in $(< /proc/cmdline)
-    do
-        if [ "${copt%=*}" = "gentoo" ]
-        then
-            params="$(gawk -v PARAMS="${copt##*=}" '
-                BEGIN {
-                    split(PARAMS, nodes, ",")
-                    for (x in nodes)
-                        print nodes[x]
-                }')"
-
-            # Parse gentoo option
-            for x in ${params}
-            do
-                if [ "${x}" = "$1" ]
-                then
-#                    printf "YES\n"
-                    retval=0
-                fi
-            done
-        fi
-    done
-
-    return ${retval}
-}
-
-# char *add_suffix(char * configfile)
-#
-#    Returns a config file name with the softlevel suffix
-#    appended to it.  For use with multi-config services.
-add_suffix() {
-    if [ "${RC_USE_CONFIG_PROFILE}" = "yes" -a -e "$1.${DEFAULTLEVEL}" ]
-    then
-        printf "$1.${DEFAULTLEVEL}\n"
-    else
-        printf "$1\n"
-    fi
-
-    return 0
-}
-
-# bool get_mount_fstab(path)
-#
-#   return the parameters to pass to the mount command generated from fstab
-#
-#   EXAMPLE: cmd=$( get_mount_fstab /proc )
-#            cmd=${cmd:--t proc none /proc}
-#            mount -n ${cmd}
-#
-get_mount_fstab() {
-    awk '$1 ~ "^#" { next }
-         $2 == "'$*'" { if (found++ == 0) { print "-t "$3,"-o "$4,$1,$2 } }
-         END { if (found > 1) { print "More than one entry for '$*' found in /etc/fstab!" > "/dev/stderr" } }
-    ' /etc/fstab
-}
-
-# char *reverse_list(list)
-#
-#   Returns the reversed order of list
-#
-reverse_list() {
-    local ret
-    ret=''
-    while [ "$#" -gt 0 ] ; do
-        if [ -z "${ret}" ] ; then
-            ret="$1"
-        else
-            ret="$1 ${ret}"
-        fi
-        shift
-    done
-    printf '%s' "${ret}"
-}
-
-
-# bool is_older_than(reference, files/dirs to check)
-#
-#   return 0 if any of the files/dirs are newer than
-#   the reference file
-#
-#   EXAMPLE: if is_older_than a.out *.o ; then ...
-is_older_than() {
-    local x
-    local ref="$1"
-    shift
-
-    for x in "$@" ; do
-        [ "${x}" -nt "${ref}" ] && return 0
-
-        if [ -d "${x}" ] ; then
-            is_older_than "${ref}" "${x}"/* && return 0
-        fi
-    done
-
-    return 1
-}
-
-# Setup a basic $PATH.  Just add system default to existing.
-# This should solve both /sbin and /usr/sbin not present when
-# doing 'su -c foo', or for something like:  PATH= rcscript start
-PATH="/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/sbin:${PATH}"
-
-if [ "$(/sbin/consoletype 2> /dev/null)" = "serial" ] ; then
-    # We do not want colors/endcols on serial terminals
-    RC_NOCOLOR="yes"
-    RC_ENDCOL="no"
-fi
-
-for arg in "$@" ; do
-    case "${arg}" in
-        # Lastly check if the user disabled it with --nocolor argument
-        --nocolor|-nc)
-            RC_NOCOLOR="yes"
-            ;;
-    esac
-done
-
-# Setup COLS and ENDCOL so eend can line up the [ ok ]
-# width of [ ok ] == 7
-COLS="$(stty size 2>/dev/null | cut -d' ' -f2)"
-if [ -z "${COLS}" ] || [ "${COLS}" -le 0 ] ; then
-    COLS=80
-fi
-
-if [ "${RC_ENDCOL}" = "yes" ]; then
-    ENDCOL="\e[A\e[$(( ${COLS} - 8 ))G"
-else
-    ENDCOL=''
-fi
-
-# Setup the colors so our messages all look pretty
-if [ "${RC_NOCOLOR}" = "yes" ]; then
-    unset GOOD WARN BAD NORMAL HILITE BRACKET
-else
-    GOOD='\e[32;01m'
-    WARN='\e[33;01m'
-    BAD='\e[31;01m'
-    NORMAL='\e[0m'
-    HILITE='\e[36;01m'
-    BRACKET='\e[34;01m'
-fi
-
 # vim:ts=4