# Copyright 1999-2004 Gentoo Technologies, Inc. # Distributed under the terms of the GNU General Public License v2 # $Header$ # Internal logging function, don't use this in ebuilds elog_base() { local messagetype [ -z "${1}" -o -z "${T}" -o ! -d "${T}/logging" ] && return 1 case "${1}" in INFO|WARN|ERROR|LOG) messagetype="${1}" shift ;; *) echo -e " ${BAD}*${NORMAL} Invalid use of internal function elog_base(), next message will not be logged" return 1 ;; esac echo ${*} >> ${T}/logging/${EBUILD_PHASE}.${messagetype} return 0 } elog() { elog_base LOG ${*} echo -e " ${GOOD}*${NORMAL} ${*}" return 0 } 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 } einfo() { einfon ${*} echo return 0 } einfon() { elog_base INFO ${*} echo -ne " ${GOOD}*${NORMAL} ${*}" return 0 } ewarn() { elog_base WARN ${*} echo -e " ${WARN}*${NORMAL} ${*}" return 0 } eerror() { elog_base ERROR ${*} echo -e " ${BAD}*${NORMAL} ${*}" return 0 } ebegin() { if [ -z "${NOCOLOR}" ]; then echo -ne " ${GOOD}*${NORMAL} ${*}..." else echo -e " ${GOOD}*${NORMAL} ${*}..." fi return 0 } eend() { local retval= if [ "$#" -eq 0 ] || [ "${1:-1}" -eq 0 ]; then echo -e "${ENDCOL} ${BRACKET}[ ${GOOD}ok${BRACKET} ]${NORMAL}" else retval="$1" if [ "$#" -ge 2 ] then shift eerror "${*}" fi echo -e "${ENDCOL} ${BRACKET}[ ${BAD}!!${BRACKET} ]${NORMAL}" # extra spacing makes it easier to read echo return ${retval} fi return 0 } KV_major() { local KV= [ -z "$1" ] && return 1 KV="$(echo "$1" | \ awk '{ tmp = $0; gsub(/^[0-9\.]*/, "", tmp); sub(tmp, ""); print }')" echo "${KV}" | awk -- 'BEGIN { FS = "." } { print $1 }' return 0 } KV_minor() { local KV= [ -z "$1" ] && return 1 KV="$(echo "$1" | \ awk '{ tmp = $0; gsub(/^[0-9\.]*/, "", tmp); sub(tmp, ""); print }')" echo "${KV}" | awk -- 'BEGIN { FS = "." } { print $2 }' return 0 } KV_micro() { local KV= [ -z "$1" ] && return 1 KV="$(echo "$1" | \ awk '{ tmp = $0; gsub(/^[0-9\.]*/, "", tmp); sub(tmp, ""); print }')" echo "${KV}" | awk -- 'BEGIN { FS = "." } { print $3 }' return 0 } KV_to_int() { local KV_MAJOR= local KV_MINOR= local KV_MICRO= local KV_int= [ -z "$1" ] && return 1 KV_MAJOR="$(KV_major "$1")" KV_MINOR="$(KV_minor "$1")" KV_MICRO="$(KV_micro "$1")" 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 } get_KV() { local KV="$(uname -r)" echo "$(KV_to_int "${KV}")" return $? } getcols() { echo "$2" } unset_colors() { COLS="25 80" ENDCOL= GOOD= WARN= BAD= NORMAL= HILITE= BRACKET= if [ -n "${EBUILD}" ] && [ "${*/depend}" = "$*" ]; then stty cols 80 &>/dev/null stty rows 25 &>/dev/null fi } set_colors() { COLS="`stty size 2> /dev/null`" COLS="`getcols ${COLS}`" COLS=$((${COLS} - 7)) ENDCOL=$'\e[A\e['${COLS}'G' # Now, ${ENDCOL} will move us to the end of the # column; irregardless of character width GOOD=$'\e[32;01m' WARN=$'\e[33;01m' BAD=$'\e[31;01m' NORMAL=$'\e[0m' HILITE=$'\e[36;01m' BRACKET=$'\e[34;01m' } true