#!/bin/sh

FACILITIES_DIR=/etc/control.d/facilities

fatal()
{
	echo "${0##*/}: $*" >&2
	exit 1
}

if [ $# -eq 0 ]; then
	ls -1 $FACILITIES_DIR/ |
	while read FACILITY; do
		case "$FACILITY" in
			*.rpm*|*.orig|*~) continue ;;
		esac
		LIST="`$FACILITIES_DIR/$FACILITY list`"
		STATUS="`$FACILITIES_DIR/$FACILITY status`"
		[ -n "${FACILITY##_*}" ] || FACILITY="${FACILITY//_//}"
		printf "%-15s %-15s (%s)\n" "$FACILITY" "$STATUS" "$LIST"
	done
	exit
fi

FACILITY="$1"
shift

case "$FACILITY" in
	--help)
		a= exec man 8 control
		exit
		;;
	--version)
		echo 0.7.6-alt1
		exit
		;;
esac

REQUESTED_FACILITY="$FACILITY"
FACILITY="${FACILITY//\//_}"

if [ -x "$FACILITIES_DIR/$FACILITY" ]; then
	$FACILITIES_DIR/$FACILITY "$*" || exit 1
	case "$*" in
		''|help|'help '*|list|status|summary)
			exit 0
			;;
	esac
	STATUS="`$FACILITIES_DIR/$FACILITY status`"
	if [ "$STATUS" != "$*" ]; then
		fatal "$REQUESTED_FACILITY: Requested $*, got $STATUS"
	fi
	exit 0
else
	fatal "No such facility: $FACILITY"
fi
