#!/bin/bash
# *************************************************************************
# file: status.inc.sh
# date: 24.08.2004
# copyright: 2004 Jamba AG
# author: Marko Schulz - <marko.schulz@jamba.net>
# *************************************************************************
# Mit Hilfe dieser Funktion laesst sich der Status eines Scriptes Grafisch
# wie bei SuSE darstellen. Die Funktion benoetigt einen Uebergabeparameter,
# was der Status ist (z.B. done, failed, running, missing, skipped, dead,
# unused). Wird die Funktion ohne Parameter aufgerufen, so wird unknown
# ausgegeben. Der Status wird am rechten Rand in entsprechenden Farben
# angeteigt.
# Beispiel:
# . ./status.lib
#
# echo -n "Starting httpd..."
# rc_status done
# *************************************************************************
function rc_status() {
if test -z "$LINES" -o -z "$COLUMNS" ; then
eval `stty size 2>/dev/null | (read L C; echo LINES=${L:-24} COLUMNS=${C:-80})`
fi
test $LINES -eq 0 && LINES=24
test $COLUMNS -eq 0 && COLUMNS=80
export LINES COLUMNS
esc=`echo -en "\033"`
extd="${esc}[1m"
warn="${esc}[1;31m"
done="${esc}[1;32m"
attn="${esc}[1;33m"
norm=`echo -en "${esc}[m\017"`
stat=`echo -en "\015${esc}[${COLUMNS}C${esc}[10D"`
local param=${1:-"unknown"}
local status="${stat}${attn}unknown${norm}"
if [ "$param" = 'done' ]; then
status="${stat}${done}done${norm}"
elif [ "$param" = 'running' ]; then
status="${stat}${done}running${norm}"
elif [ "$param" = 'failed' ]; then
status="${stat}${warn}failed${norm}"
elif [ "$param" = 'missing' ]; then
status="${stat}${warn}missing${norm}"
elif [ "$param" = 'skipped' ]; then
status="${stat}${attn}skipped${norm}"
elif [ "$param" = 'dead' ]; then
status="${stat}${warn}dead${norm}"
elif [ "$param" = 'unused' ]; then
status="${stat}${extd}unused${norm}"
fi
echo $status
}
# *************************************************************************
# end of this script...