summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarius Mauch <genone@gentoo.org>2005-11-13 14:49:21 +0000
committerMarius Mauch <genone@gentoo.org>2005-11-13 14:49:21 +0000
commit6c3c1b0cf62e59eaad40d425fee97f33ff3b639a (patch)
treec2677cb8de672fe092662dbd1863cdf1b759dbb0 /bin/isolated-functions.sh
parentadd NetBSD to the BSD list #112393 (diff)
downloadportage-multirepo-6c3c1b0cf62e59eaad40d425fee97f33ff3b639a.tar.gz
portage-multirepo-6c3c1b0cf62e59eaad40d425fee97f33ff3b639a.tar.bz2
portage-multirepo-6c3c1b0cf62e59eaad40d425fee97f33ff3b639a.zip
Add slightly modified elog_base patch containing the basic framework for ebuild logging.
svn path=/main/trunk/; revision=2306
Diffstat (limited to 'bin/isolated-functions.sh')
-rw-r--r--bin/isolated-functions.sh204
1 files changed, 204 insertions, 0 deletions
diff --git a/bin/isolated-functions.sh b/bin/isolated-functions.sh
new file mode 100644
index 00000000..860bc589
--- /dev/null
+++ b/bin/isolated-functions.sh
@@ -0,0 +1,204 @@
+# 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