blob: 860bc589063e5b15e4b153d79462b60066e7973c [file] [log] [blame]
# 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