#!/bin/sh

# Set up a default search path.
PATH="/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin"
export PATH

VERSION="$(basename $0) ver. 0.91"
USAGE="Usage: $(basename $0) < option > | --status-all | \
[ service_name [ command | --full-restart ] ]"

SERVICE=

if [ -d /etc/rc.d/init.d ]; then
	SERVICEDIR="/etc/rc.d/init.d"
else
	SERVICEDIR="/etc/init.d"
fi

if [ $# -eq 0 ]; then
	echo "${USAGE}" >&2
	exit 1
fi

cd /
while [ $# -gt 0 ]; do
	case "${1}" in
	  --help | -h | --h* )
		echo "${USAGE}" >&2
		exit 0
		;;
	  --version | -V )
		echo "${VERSION}" >&2
		exit 0
		;;
	  *)
		if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
			cd ${SERVICEDIR}
			for SERVICE in * ; do
				case "${SERVICE}" in
				  functions | halt | killall | single| linuxconf| kudzu | \
				  *rpmorig | *rpmnew | *rpmsave | *~ | *.orig)
					;;
				  *)
					if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
						env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" status
					fi
					;;
				esac
			done
			exit 0
		elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
			SERVICE="${1}"
			if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
				env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
				env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" start
				exit $?
			fi
		elif [ -z "${SERVICE}" ]; then
			SERVICE="${1}"
		else
			OPTIONS="${OPTIONS} ${1}"
		fi
		shift
		;;
	esac
done

if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
	env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
else
	echo "${SERVICE}: unrecognized service" >&2
	exit 1
fi
