#!/bin/sh
#
# File:		spxadmport
#
# Author:		David Dix
#
# Created:		25th March 1998
#
# Last modified:	98/03/25
#
# Copyright (c) Specialix International Ltd	1998.
#
#
# This script will add, enable, disable or remove a port service from
# the riomon port monitor.
#
# Arguments are:
#
#  $1 - enable, disable, remove (default: enable)
#  $2 - RIO port e.g. r001, r012, R008
#  $3 - ttylable e.g. 19200, 38400R (default: 38400R)
#  $4 - Service owner (default: root)
#

#set -x

#
# Set up globals
#
PORTMON="riomon"

#
# First we copy the argsa to the variables.
#
CHOICE=$1
PORT=$2
LABEL=$3
OWNER=$4

Usage()
{
    echo "Usage: ${0} add|enable|disable|remove svctag [label] [owner]"
}

if [ ! -c /dev/term/${PORT} ]
then
    echo "You must enter a valid Specialix RIO port svctag e.g. r001, R008"
    Usage
    exit 1
fi

if [ X$LABEL = "X" ]
then
    LABEL="38400R"
fi

if [ X$OWNER = "X" ]
then
    OWNER="root"
fi

#
#Use the first character of the device name to determine what
# port monitor to administer.
#
case `echo ${PORT} | cut -c1` in
    r|R)
	PORTMON=riomon
	LOGSTR="RIO Login: "
	;;
    a|A)
	PORTMON=slxmon
	LOGSTR="SX Login: "
	;;
    i|I)
	PORTMON=io8mon
	LOGSTR="IO8 Login: "
	;;
    *)
	echo "Unable to determine port monitor to administer"
	exit 1
	;;
esac

#
# Use CHOICE to decide what needs to be done.
#
case ${CHOICE} in
    add)
	#
	# Use ttyadm to get its "version" & the "pmspecific" information.
	#
	TTYADMVERS=`ttyadm -V`
	PMSPECIFIC=`ttyadm -d /dev/term/${PORT} -l ${LABEL} -m ldterm -p ${LOGSTR} -s /usr/bin/shserv`

	pmadm -a -p ${PORTMON} -s ${PORT} -i ${OWNER} -fu -S login -v ${TTYADMVERS} -m "${PMSPECIFIC}"
	;;

    enable)
	pmadm -e -p ${PORTMON} -s ${PORT}
	;;

    disable)
	pmadm -d -p ${PORTMON} -s ${PORT}
	;;

    remove)
	pmadm -r -p ${PORTMON} -s ${PORT}
	;;

    *)
	Usage
	exit 1
	;;
esac
