#!/bin/sh
# $Id: control,v 1.3 2002/11/03 01:24:35 solar Exp $

FACILITIES_DIR=/etc/control.d/facilities

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

if [ $# -ge 1 ]; then
	FACILITY="$1"
	shift
	if [ -x "$FACILITIES_DIR/$FACILITY" ]; then
		$FACILITIES_DIR/$FACILITY "$*" || exit 1
		if [ -n "$*" -a "$*" != "list" -a "$*" != "status" ]; then
			STATUS="`$FACILITIES_DIR/$FACILITY status`"
			if [ "$STATUS" != "$*" ]; then
				fatal "$FACILITY: Requested $*, got $STATUS"
			fi
		fi
		exit 0
	else
		fatal "No such facility: $FACILITY"
	fi
fi
#printf "%b" "\033[33mcontrol(8)\033[0m\n\n"

ls -1 $FACILITIES_DIR/ |
while read FACILITY; do
	test "${FACILITY%.*}" = "$FACILITY" || continue
	LIST="`$FACILITIES_DIR/$FACILITY list`"
	STATUS="`$FACILITIES_DIR/$FACILITY status`"
	printf "%-15s " "$FACILITY"
	if [ "$STATUS" = "public" ]; then
		printf "%-22b " "\033[31m$STATUS\033[0m"
	elif [ "$STATUS" = "unknow" ]; then
		printf "%-22b " "\033[34m$STATUS\033[0m"
	else
		printf "%-22b " "\033[32m$STATUS\033[0m"
	fi
	printf "[ %s ]\n" "$LIST"
done
