#!/bin/sh

prefix="/usr/local"
cd /root

service_enabled_filtered()
{
	service -e |
	while read rc
	do
		if test -f "${prefix}/etc/allservice.txt"
		then
			if grep -q -x "${rc}" "${prefix}/etc/allservice.txt"
			then
				continue
			fi
		fi
		if test "${filter}" != ""
		then
			case "${rc}" in
			${filter})
				;;
			*)
				continue
				;;
			esac
		fi
		echo "${rc}"
	done
}

generate_allservice() {
	if test ! -f "${prefix}/etc/allservice.txt"
	then
		touch "${prefix}/etc/allservice.txt"
	fi
	service -e |
	while read rc
	do
		if test ! -e "${rc}"
		then
			continue
		fi
		usage=`"${rc}" 2>&1`
		case "${usage}" in
		*status*)
			continue
			;;
		esac
		if grep -q -x "${rc}" "${prefix}/etc/allservice.txt"
		then
			continue
		fi
		echo "${rc}" >> "${prefix}/etc/allservice.txt"
		echo "ignored: ${rc}"
	done
}

filter=""
case "${1}" in
local)
	shift
	filter="${prefix}/etc/*"
	;;
gen)
	generate_allservice
	exit 0
	;;
esac

if test $# -lt 1
then
	service_enabled_filtered
	exit 0
fi


service_enabled_filtered |
while read rc
do
	${rc} "${@}"
done
exit 0
# eof
