- return $1
-}
-
-# void esyslog(char* priority, char* tag, char* message)
-# use the system logger to log a message
-#esyslog() {
-# local pri=
-# local tag=
-#
-# if [ -x /usr/bin/logger ]
-# then
-# pri="$1"
-# tag="$2"
-#
-# shift 2
-# [[ -z "$*" ]] && return 0
-#
-# /usr/bin/logger -p "${pri}" -t "${tag}" -- "$*"
-# fi
-#
-# return 0
-#}
-
-# Copyright 1999-2005 Gentoo Foundation
-# 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}"
-
-# Should we use color?
-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"
-
-#
-# Default values for e-message indentation and dots
-#
-RC_INDENTATION=''
-RC_DEFAULT_INDENT=2
-#RC_DOT_PATTERN=' .'
-RC_DOT_PATTERN=''
-
-# void splash(...)
-#
-# Notify bootsplash/splashutils/gensplash/whatever about
-# important events.
-#
-splash() {
- return 0
-}
-
-# void profiling(...)
-#
-# Notify bootsplash/whatever about important events.
-#
-profiling() {
- return 0
-}
-
-# void get_bootconfig()
-#
-# Get the BOOTLEVEL and SOFTLEVEL by setting
-# 'bootlevel' and 'softlevel' via kernel
-# parameters.
-#
-get_bootconfig() {
- local copt=
- local newbootlevel=
- local newsoftlevel=
-
- for copt in $(</proc/cmdline) ; do
- case "${copt%=*}" in
- "bootlevel")
- newbootlevel="${copt##*=}"
- ;;
- "softlevel")
- newsoftlevel="${copt##*=}"
- ;;
- esac
- done
-
- if [ -n "${newbootlevel}" ] ; then
- export BOOTLEVEL="${newbootlevel}"
- else
- export BOOTLEVEL="boot"
- fi
-
- if [ -n "${newsoftlevel}" ] ; then
- export DEFAULTLEVEL="${newsoftlevel}"
- else
- export DEFAULTLEVEL="default"
- fi
-
- return 0
-}
-
-# void get_libdir(void)
-#
-# prints the current libdir {lib,lib32,lib64}
-#
-get_libdir() {
- if [ -n "${CONF_LIBDIR_OVERRIDE}" ] ; then
- CONF_LIBDIR="${CONF_LIBDIR_OVERRIDE}"
- elif [ -x "/usr/bin/portageq" ] ; then
- CONF_LIBDIR="$(/usr/bin/portageq envvar CONF_LIBDIR)"
- fi
- echo ${CONF_LIBDIR:=lib}
-}
-
-# void esyslog(char* priority, char* tag, char* message)
-#
-# use the system logger to log a message
-#
-esyslog() {
- local pri=
- local tag=
-
- if [ -x /usr/bin/logger ]
- then
- pri="$1"
- tag="$2"
-
- shift 2
- [[ -z "$*" ]] && return 0
-
- /usr/bin/logger -p "${pri}" -t "${tag}" -- "$*"
- fi
-
- return 0
-}
-
-# void eindent(int num)
-#
-# increase the indent used for e-commands.
-#
-eindent() {
- local i=$1
- (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
- esetdent $(( ${#RC_INDENTATION} + i ))
-}
-
-# void eoutdent(int num)
-#
-# decrease the indent used for e-commands.
-#
-eoutdent() {
- local i=$1
- (( i > 0 )) || (( i = RC_DEFAULT_INDENT ))
- esetdent $(( ${#RC_INDENTATION} - i ))
-}
-
-# void esetdent(int num)
-#
-# hard set the indent used for e-commands.
-# num defaults to 0
-#
-esetdent() {
- local i=$1
- (( i < 0 )) && (( i = 0 ))
- RC_INDENTATION=$(printf "%${i}s" '')
-}
-
-# void einfo(char* message)
-#
-# show an informative message (with a newline)
-#
-einfo() {
- einfon "$*\n"
- LAST_E_CMD=einfo
- return 0
-}
-
-# void einfon(char* message)
-#
-# show an informative message (without a newline)
-#
-einfon() {
- [[ ${RC_QUIET_STDOUT} == yes ]] && return 0
- [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo
- echo -ne " ${GOOD}*${NORMAL} ${RC_INDENTATION}$*"
- LAST_E_CMD=einfon
- return 0
-}
-
-# void ewarn(char* message)
-#
-# show a warning message + log it
-#
-ewarn() {
- if [[ ${RC_QUIET_STDOUT} == yes ]]; then
- echo " $*"
- else
- [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo
- echo -e " ${WARN}*${NORMAL} ${RC_INDENTATION}$*"
- fi
-
- # Log warnings to system log
- esyslog "daemon.warning" "rc-scripts" "$*"
-
- LAST_E_CMD=ewarn
- return 0
-}
-
-# void eerror(char* message)
-#
-# show an error message + log it
-#
-eerror() {
- if [[ ${RC_QUIET_STDOUT} == yes ]]; then
- echo " $*" >/dev/stderr
- else
- [[ ${RC_ENDCOL} != yes && ${LAST_E_CMD} == ebegin ]] && echo
- echo -e " ${BAD}*${NORMAL} ${RC_INDENTATION}$*"
- fi
-
- # Log errors to system log
- esyslog "daemon.err" "rc-scripts" "$*"
-
- LAST_E_CMD=eerror
- return 0
-}
-
-# void ebegin(char* message)
-#
-# show a message indicating the start of a process
-#
-ebegin() {
- local msg="$*" dots spaces=${RC_DOT_PATTERN//?/ }
- [[ ${RC_QUIET_STDOUT} == yes ]] && return 0
-
- if [[ -n ${RC_DOT_PATTERN} ]]; then
- dots=$(printf "%$(( COLS - 3 - ${#RC_INDENTATION} - ${#msg} - 7 ))s" '')
- dots=${dots//${spaces}/${RC_DOT_PATTERN}}
- msg="${msg}${dots}"
- else
- msg="${msg} ..."
- fi
- einfon "${msg}"
- [[ ${RC_ENDCOL} == yes ]] && echo
-
- LAST_E_LEN=$(( 3 + ${#RC_INDENTATION} + ${#msg} ))
- LAST_E_CMD=ebegin
- return 0
-}
-
-# void _eend(int error, char *efunc, char* errstr)
-#
-# indicate the completion of process, called from eend/ewend
-# if error, show errstr via efunc
-#
-# This function is private to functions.sh. Do not call it from a
-# script.
-#
-_eend() {
- local retval=${1:-0} efunc=${2:-eerror} msg
- shift 2
-
- if [[ ${retval} == 0 ]]; then
- [[ ${RC_QUIET_STDOUT} == yes ]] && return 0
- msg="${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}"
- else
- if [[ -n "$*" ]]; then
- ${efunc} "$*"
- fi
- msg="${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}"
- fi
-
- if [[ ${RC_ENDCOL} == yes ]]; then
- echo -e "${ENDCOL} ${msg}"
- else
- [[ ${LAST_E_CMD} == ebegin ]] || LAST_E_LEN=0
- printf "%$(( COLS - LAST_E_LEN - 6 ))s%b\n" '' "${msg}"
- fi
-
- return ${retval}
-}
-
-# void eend(int error, char* errstr)
-#
-# indicate the completion of process
-# if error, show errstr via eerror
-#
-eend() {
- local retval=${1:-0}
- shift
-
- _eend ${retval} eerror "$*"
-
- LAST_E_CMD=eend
- return $retval
-}
-
-# void ewend(int error, char* errstr)
-#
-# indicate the completion of process
-# if error, show errstr via ewarn
-#
-ewend() {
- local retval=${1:-0}
- shift
-
- _eend ${retval} ewarn "$*"
-
- LAST_E_CMD=ewend
- return $retval
-}
-
-# v-e-commands honor RC_VERBOSE which defaults to no.
-# The condition is negated so the return value will be zero.
-veinfo() { [[ "${RC_VERBOSE}" != yes ]] || einfo "$@"; }
-veinfon() { [[ "${RC_VERBOSE}" != yes ]] || einfon "$@"; }
-vewarn() { [[ "${RC_VERBOSE}" != yes ]] || ewarn "$@"; }
-veerror() { [[ "${RC_VERBOSE}" != yes ]] || eerror "$@"; }
-vebegin() { [[ "${RC_VERBOSE}" != yes ]] || ebegin "$@"; }
-veend() {
- [[ "${RC_VERBOSE}" == yes ]] && { eend "$@"; return $?; }
- return ${1:-0}
-}
-veend() {
- [[ "${RC_VERBOSE}" == yes ]] && { ewend "$@"; return $?; }
- return ${1:-0}
-}
-
-# char *KV_major(string)
-#
-# Return the Major (X of X.Y.Z) kernel version
-#
-KV_major() {
- [[ -z $1 ]] && return 1
-
- local KV=$@
- echo ${KV%%.*}
-}
-
-# char *KV_minor(string)
-#
-# Return the Minor (Y of X.Y.Z) kernel version
-#
-KV_minor() {
- [[ -z $1 ]] && return 1
-
- local KV=$@
- KV=${KV#*.}
- echo ${KV%%.*}
-}
-
-# char *KV_micro(string)
-#
-# Return the Micro (Z of X.Y.Z) kernel version.
-#
-KV_micro() {
- [[ -z $1 ]] && return 1
-
- local KV=$@
- KV=${KV#*.*.}
- echo ${KV%%[^[:digit:]]*}
-}
-
-# int KV_to_int(string)
-#
-# Convert a string type kernel version (2.4.0) to an int (132096)
-# for easy compairing or versions ...
-#
-KV_to_int() {
- [[ -z $1 ]] && return 1
-
- local KV_MAJOR=$(KV_major "$1")
- local KV_MINOR=$(KV_minor "$1")
- local KV_MICRO=$(KV_micro "$1")
- local KV_int=$(( KV_MAJOR * 65536 + KV_MINOR * 256 + KV_MICRO ))
-
- # We make version 2.2.0 the minimum version we will handle as
- # a sanity check ... if its less, we fail ...
- if [[ ${KV_int} -ge 131584 ]] ; then
- echo "${KV_int}"
- return 0
- fi
-
- return 1
-}
-
-# int get_KV()
-#
-# Return the kernel version (major, minor and micro concated) as an integer.
-# Assumes X and Y of X.Y.Z are numbers. Also assumes that some leading
-# portion of Z is a number.
-# e.g. 2.4.25, 2.6.10, 2.6.4-rc3, 2.2.40-poop, 2.0.15+foo
-#
-get_KV() {
- local KV=$(uname -r)
-
- echo $(KV_to_int "${KV}")
-
- return $?
-}
-
-# 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
-# echo "YES"
- retval=0
- fi
- done
- fi
- done
-
- return ${retval}