#!/bin/ksh -p
usage () {
echo "$0 [options]"
echo " -h, --help Display this help"
echo " -a display Add a new Sun Ray display"
echo " -d display Delete a Sun Ray display"
echo " -l List all Sun Ray displays"
exit 1
}
AWK="/usr/gnu/bin/awk"
SED="/usr/gnu/bin/sed"
SEAT_TOOL="/usr/sbin/ck-seat-tool"
LIST_TOOL="/usr/bin/ck-list-sessions"
HIST_TOOL="/usr/bin/ck-history"
optype=""
oparg=""
for i in "$@"
do
if [ ! "x$optype" = "x" ]; then
oparg=$i
break
fi
if [ "x$i" = "x-h" -o "x$i" = "x--help" ]; then
break
fi
if [ "x$i" = "x-a" ]; then
optype="add"
continue
fi
if [ "x$i" = "x-d" ]; then
optype="delete"
continue
fi
if [ "x$i" = "x-l" ]; then
optype="list"
break
fi
done
case $optype in
add)
# gdmdynamic -a 10=/usr/X11/bin/Xorg
oparg=`echo $oparg | awk -F\= '{print $1}'`
seatid=`$HIST_TOOL --last | $AWK -v disp=":$oparg" '{if ($6 == disp) print $N0}' | head -1 | $AWK '{print $4}'`
if [ "x$seatid" = x ]; then
seatid="SunraySeat$oparg"
fi
$SEAT_TOOL -a --display-type=Sunray --seat-id=$seatid display=:$oparg
;;
delete)
# gdmdynamic -d 10
ssid=`$LIST_TOOL -f session-id,x11-display,display-type | grep Sunray | $SED -e s/\'//g | $AWK -v disp=:$oparg '{if ($2 == disp) print $1}'`
if [ ! "x$ssid" = "x" ]; then
$SEAT_TOOL -d --session-id=$ssid
fi
;;
list)
# gdmdynamic -l
sessions=`$LIST_TOOL -f session-id,x11-display,display-type | grep Sunray | $AWK '{print $2}' | $SED -e s/\'//g`
dyps=""
for i in $sessions
do
if [ ! "x$i" = "x" ]; then
dyps="$i,,;$dyps"
fi
done
echo $dyps
;;
* )
usage
;;
esac