#!/bin/sh

SERVIP=127.0.0.1
SERVPORT=34000
OFFLINE_ERR=0

if [ -z $SPOOLDIR ]; then
	SPOOLDIR=/var/spool/statusd
fi

STF=$SPOOLDIR/remote-$SERVIP.status


if [ -f $STF ]; then
	OLDRS=`cat $STF`
else
	OLDRS='status: WARNING first run'
fi

RS=`nc -w 5 -q 2 $SERVIP $SERVPORT 2>&1`
NC_ERR=$?

if [ "x$RS" = "xstatus: OK" ]; then
	echo "OK"
	if [ "x$OLDRS" != "xstatus: OK" ]; then
		echo "status: OK" > $STF
	fi
	exit 0
else
	if [ "x$NC_ERR" != "x0" ]; then
		if [ "x$OFFLINE_ERR" = "x1" ]; then
			echo "OFFLINE"
			exit 2
		elif [ "x$OLDRS" = "xstatus: OK" ]; then
			echo "OK"
			exit 0
		else
			RS="$OLDRS [OFFLINE]"
		fi
	else
		if [ "x$OLDRS" != "x$RS" ]; then
			echo "$RS" > $STF
		fi
	fi

	echo $RS |sed 's/^status: \(WARNING\|ERROR\) //'

	if (echo "$RS" |grep '^status: WARNING'>/dev/null); then
		exit 1
	else
		exit 2
	fi
fi
