1 #!/bin/ksh -p 2 3 usage () { 4 echo "$0 [options]" 5 echo " -h, --help Display this help" 6 echo " -a display Add a new Sun Ray display" 7 echo " -d display Delete a Sun Ray display" 8 echo " -l List all Sun Ray displays" 9 exit 1 10 } 11 12 AWK="/usr/gnu/bin/awk" 13 SED="/usr/gnu/bin/sed" 14 SEAT_TOOL="/usr/sbin/ck-seat-tool" 15 LIST_TOOL="/usr/bin/ck-list-sessions" 16 HIST_TOOL="/usr/bin/ck-history" 17 18 optype="" 19 oparg="" 20 21 for i in "$@" 22 do 23 if [ ! "x$optype" = "x" ]; then 24 oparg=$i 25 break 26 fi 27 if [ "x$i" = "x-h" -o "x$i" = "x--help" ]; then 28 break 29 fi 30 if [ "x$i" = "x-a" ]; then 31 optype="add" 32 continue 33 fi 34 if [ "x$i" = "x-d" ]; then 35 optype="delete" 36 continue 37 fi 38 if [ "x$i" = "x-l" ]; then 39 optype="list" 40 break 41 fi 42 done 43 44 case $optype in 45 add) 46 # gdmdynamic -a 10=/usr/X11/bin/Xorg 47 oparg=`echo $oparg | awk -F\= '{print $1}'` 48 seatid=`$HIST_TOOL --last | $AWK -v disp=":$oparg" '{if ($6 == disp) print $N0}' | head -1 | $AWK '{print $4}'` 49 if [ "x$seatid" = x ]; then 50 $SEAT_TOOL -a --display-type=Sunray display=:$oparg 51 else 52 $SEAT_TOOL -a --display-type=Sunray --seat-id=$seatid display=:$oparg 53 fi 54 ;; 55 delete) 56 # gdmdynamic -d 10 57 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}'` 58 if [ ! "x$ssid" = "x" ]; then 59 $SEAT_TOOL -d --session-id=$ssid 60 fi 61 ;; 62 list) 63 # gdmdynamic -l 64 sessions=`$LIST_TOOL -f session-id,x11-display,display-type | grep Sunray | $AWK '{print $2}' | $SED -e s/\'//g` 65 dyps="" 66 for i in $sessions 67 do 68 if [ ! "x$i" = "x" ]; then 69 dyps="$i;$dyps" 70 fi 71 done 72 echo $dyps 73 ;; 74 * ) 75 usage 76 ;; 77 esac 78