#!/bin/sh

usage() {
    test -n "$1" && echo $1
    echo "Usage: $0 <ACTION>"
    echo "ACTION:={start|stop}"
}

ACTION=$1
. /etc/rc.status
SBIN=/usr/sbin
cd /etc/sysconfig/isdn
test -z "$CONTR_FILES" && for c in cfg-contr* ; do
  case $c in
    *~*|*.*)
      # drop backup files, rpm{save,new,orig}
      ;;
    *)
      CONTR_FILES="$CONTR_FILES $c"
      ;;
  esac
done

rc_reset

RET=0

case "$ACTION" in
     start)
	MESSAGE="Setting up ISDN card"
	set -- $CONTR_FILES
	for CONTR in "${@#cfg-contr}"; do
	    ID="contr${CONTR}"
	    test -f "cfg-${ID}" || continue
	    . cfg-${ID}
	    if [ "$DRIVER" = "fcdsl" ]; then
		echo -n "$MESSAGE $ID $NAME"
		RET=0
		CAPI_CNR=${CAPI_CNR:=1}
		echo -n " $CAPI_CNR"
		. scripts/load-capi
		rc_failed $RET
		rc_status -v
		if [ $RET -eq 0 ]; then
		    echo -n "Initializing capi for $ID ($CAPI_CNR)"
		    $SBIN/capiinit -c capi.conf.${ID} start  >& /dev/null
		    RET=$?
		    test $RET -eq 0 && CONTR_CNT=$(($CONTR_CNT + 2))
		    rc_failed $RET
		    rc_status -v
		fi
	    fi
	done
	;;
    stop)
	MESSAGE="Unloading ISDN driver"
	set -- $CONTR_FILES
	for CONTR in "${@#cfg-contr}"; do
	    ID="contr${CONTR}"
	    test -f "cfg-${ID}" || continue
	    . cfg-${ID}
	    if [ "$DRIVER" = "fcdsl" ]; then
		echo -n "$MESSAGE $ID $NAME"
		CAPI_CNR=${CAPI_CNR:=1}
		echo -n " $CAPI_CNR"
		$SBIN/capiinit -c capi.conf.${ID} stop  >& /dev/null
		RET=$?
		rc_failed $RET
		rc_status -v
	    fi
	done
	;;
    *)
	usage "unknown action $ACTION"
	exit 1
	;;
esac
rc_exit
