#!/bin/bash
if [ "$1" == "-l" ]; then
	PIDDIR="${2}"
	shift 2
else
	PIDDIR=/tmp/${USER}
	mkdir -p ${PIDDIR}
	chmod 700 ${PIDDIR}
fi
if [ -z "$1" ]; then
	echo "Error! You need to specify a command to run!"
	exit -1
fi
MYPID=$$
MYNAME=`basename $0`-`basename $1`
PIDFILE=${PIDDIR}/${MYNAME}.pid
if [ -f "${PIDFILE}" ]; then
	OLDPID=$(< ${PIDFILE})
	INUSE=`ps -ef |  grep $OLDPID | grep -v "grep $OLDPID" | xargs | cut -d' ' -f2`
	if [ -z "${INUSE}" ]; then
		#echo "Stale pidfile detected. Removing"
		rm ${PIDFILE}
	else
		#echo "ERROR! Running already!"
		echo "Warning! '$MYNAME' is running already!"
		exit 0
	fi
fi
#echo "Not running already, putting PID in pidfile"
echo ${MYPID} >${PIDFILE}
CMD="$*"
#echo "Doing something (${CMD})"
eval ${CMD}
#echo "Cleaning up ${PIDFILE}"
rm ${PIDFILE}
