16234
|
1 |
#!/bin/ksh -p
|
16889
|
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 |
|
16540
|
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"
|
16890
|
16 |
HIST_TOOL="/usr/bin/ck-history"
|
16234
|
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
|
16889
|
27 |
if [ "x$i" = "x-h" -o "x$i" = "x--help" ]; then
|
|
28 |
break
|
|
29 |
fi
|
16234
|
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}'`
|
16890
|
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
|
18454
|
50 |
seatid="SunraySeat$oparg"
|
16890
|
51 |
fi
|
18454
|
52 |
$SEAT_TOOL -a --display-type=Sunray --seat-id=$seatid display=:$oparg
|
16234
|
53 |
;;
|
|
54 |
delete)
|
|
55 |
# gdmdynamic -d 10
|
16540
|
56 |
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}'`
|
16234
|
57 |
if [ ! "x$ssid" = "x" ]; then
|
16540
|
58 |
$SEAT_TOOL -d --session-id=$ssid
|
16234
|
59 |
fi
|
|
60 |
;;
|
|
61 |
list)
|
|
62 |
# gdmdynamic -l
|
16540
|
63 |
sessions=`$LIST_TOOL -f session-id,x11-display,display-type | grep Sunray | $AWK '{print $2}' | $SED -e s/\'//g`
|
16234
|
64 |
dyps=""
|
|
65 |
for i in $sessions
|
|
66 |
do
|
|
67 |
if [ ! "x$i" = "x" ]; then
|
|
68 |
dyps="$i;$dyps"
|
|
69 |
fi
|
|
70 |
done
|
|
71 |
echo $dyps
|
|
72 |
;;
|
16889
|
73 |
* )
|
|
74 |
usage
|
|
75 |
;;
|
16234
|
76 |
esac
|