#!/bin/sh

#
# Allow only a single instance of ${PROGRAM} per user
#
# mv /usr/local/${PROGRAM} /usr/local/${PROGRAM}.bin
# Install this wrapper as /usr/local/${PROGRAM}
# edit PROGRAM below
# check your "ps" command line options at getpid()
#

PROGRAM=pine


echon()
{
	case `uname` in
		SunOS)

		if [ -f /usr/ucb/ps ]
		then
			echo $@ \\c
		else
			echo -n $*
		fi
		;;

		IRIX*)
		echo -n $@
		;;

		*)
		echo -n $@
		;;
	esac
}


getpid()
{
	case `uname` in
		SunOS)

		if [ -f /usr/ucb/ps ]
		then
			PS=/usr/ucb/ps
		else
			PS=/bin/ps
		fi
		TIN=`${PS} -acux | egrep "^${LOGNAME} .* ${PROGRAM}.bin$"`
		;;

		IRIX*)
		TIN=`ps -ef |egrep -e " [ ]*\`id -un\` .*[0-9] ${PROGRAM}.bin [ ]*$"`
		;;

		*)
		# untested
		TIN=`ps -ef |egrep -e " [ ]*\`id -un\` .*[0-9] ${PROGRAM}.bin [ ]*$"`
		;;
	esac
}

getpid

if [ _"$TIN"_ != __ ]
then
	echo error: $PROGRAM already running
	echo "$TIN"
	echon "kill it and start a new one? [Y/n] "
	read ans
	if [ "$ans" != "n" ]
	then
		TPID=`echo "$TIN" | awk '{print $2}'`
		kill $TPID
		sleep 3
		getpid
		if [ _"$TIN"_ != __ ]
		then
			kill -9 $TPID
			sleep 1
		fi
		$PROGRAM
	else
		exit 1
	fi
else
	exec ${PROGRAM}.bin ${1+"$@"}
fi

