#!/bin/bash

# included by diskless-* scripts

PROG=${0##*/}


CONF=/etc/ltsp/diskless.conf
if [ ! -s "$CONF" ]; then
	echo "config file $CONF is absent or empty, exiting..." >&2
	exit 127
fi
. "$CONF"

error()
{
#	echo "$PROG: $@" | tee -a "$LOGFILE" >&2
	echo "$PROG: $@" >&2
}

setcolor()
{
	local b=0
	local f=0
	local col=$1
	local mod=${col:0:1}

	[ "$mod" = "d" -o "$mod" = "l" ] && col=${col:1}
	[ "$mod" = "l" ] && b=1

	case "$col" in
		black)
			f=30 ;;
		red)
			f=31 ;;
		green)
			f=32 ;;
		brown)
			f=33; [ "$mod" != "l" ] && b=0 ;;
		yellow)
			f=33; [ "$mod" != "d" ] && b=1 ;;
		blue)
			f=34 ;;
		magenta|purple)
			f=35 ;;
		cyan)
			f=36 ;;
		gray)
			f=37; [ "$mod" = "d" ] && f=30 && b=1 ;;
		white)
			f=37; [ "$mod" != "d" ] && b=1 ;;
		[0-7])
			f=3${1} ;;
		*)
			echo -en "\e[00m"
			return
			;;
	esac
	echo -en "\e[0${b};${f}m"
}


# don't colorify output when started from cron
# check if TERM is 'dumb' or not set
if [ -z "$TERM" -o "$TERM" = "dumb" ]; then
	echo_col()
	{
		shift
		echo "$@"
	}
else
	echo_col()
	{
		local col=$1
		local n=
		shift
		[ "$1" = "-n" ] && shift && n="-n"
		setcolor $col
		echo -n "$@"
		setcolor
		echo $n
	}
fi

action()
{
	echo_col green "  # $1"
	shift
	"$@"
}

echo_date()
{
	[ -n "$DATEFMT" ] && echo -n $(date "+$DATEFMT")
}

echo_header()
{
	echo_col blue "######## $(echo_date) $@ ########"
}

valid_chroot()
{
	[ -d "$1" -a -e "$1/proc" -a -e "$1/bin/sh" ] && return 0
	return 1
}
