Magellan Linux

Contents of /mcore-src/trunk/mcore-tools/src/modules/citrix/citrix.client.class.in

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2319 - (show annotations) (download)
Thu Jul 3 11:18:35 2014 UTC (9 years, 9 months ago) by niro
File size: 4500 byte(s)
-generate fluxbox menuentries with the citrix-session helper program if fluxbox was provided
1 # $Id$
2
3 provide citrix ica
4
5 # needs fluxbox!
6 require fluxbox basic-video
7
8 # citrix global config
9 include @@SYSCONFDIR@@/mcore/citrix.conf
10
11 help_citrix_serverlist()
12 {
13 mecho "get citrix.serverlist [action]"
14 mecho " Shows all hosts added on the serverlist."
15 mecho " [actions]:"
16 mecho " print - prints local configured serverlist"
17 mecho " query - get serverlist of the farm from given [server]"
18 mecho
19 mecho "set citrix.serverlist [action] [host]"
20 mecho " Adds or deletes a server from the ica serverlist."
21 mecho " [actions]:"
22 mecho " add - adds a server"
23 mecho " del - deletes a server"
24 mecho " auto - queries given [server] for the serverlist and adds all of them"
25 mecho
26 mecho " host - dns hostname or ip of the server"
27 mecho
28 mecho " If no [host] was given, all entries are deleted."
29 }
30
31 help_citrix_session()
32 {
33 mecho "get citrix.session"
34 mecho " Shows all configured ICA sessions"
35 mecho " print - prints all local configured sessions"
36 mecho " query - get sessionlist of the farm from given [server]"
37 mecho
38 mecho "set citrix.session [action] [name] [session] [mode] [user] [domain] [password]"
39 mecho " Adds or delets a ICA session."
40 mecho " Available actions:"
41 mecho " add - adds a new ica session"
42 mecho " del - deletes ica session with name [name]"
43 mecho " if no [name] given, all sessions will be deleted"
44 mecho
45 mecho " Available modes:"
46 mecho " fullscreen - fullscreen session"
47 mecho " seamless - seamless windows session"
48 mecho " *x* - windowed session with given resolution"
49 mecho " any resonable resolution is fine like:"
50 mecho " 1024x768, 1280x1024, 1440x900 etc"
51 mecho
52 mecho " session - name of the Citrix session"
53 mecho " user - user inside the session - optional"
54 mecho " domain - logon domain of the user - optional"
55 mecho " password - password of the user - optional"
56 }
57
58 set_citrix_session()
59 {
60 local action="${CLASS_ARGV[0]}"
61 local name="${CLASS_ARGV[1]}"
62 local session="${CLASS_ARGV[2]}"
63 local mode="${CLASS_ARGV[3]}"
64 local user="${CLASS_ARGV[4]}"
65 local domain="${CLASS_ARGV[5]}"
66 local password="${CLASS_ARGV[6]}"
67 local i
68
69 [[ -z ${action} ]] && help_citrix_session && return 1
70
71 case "${action}" in
72 add)
73 # requires name
74 [[ -z ${name} ]] && help_citrix_session && return 1
75 # action 'add' need mode too
76 [[ -z ${mode} ]] && help_citrix_session && return 1
77 # and session
78 [[ -z ${session} ]] && help_citrix_session && return 1
79
80 # other sanity checks
81 case "${mode}" in
82 fullscreen) ;;
83 seamless) ;;
84 *x*) ;;
85 *) help_citrix_session && return 1 ;;
86 esac
87
88 # create citrix session file
89 ${MCORE_LIBDIR}/citrix-session \
90 --add \
91 --name "${name}" \
92 --session "${session}" \
93 --mode "${mode}" \
94 --user "${user}" \
95 --domain "${domain}" \
96 --password "${password}"
97 ;;
98
99 del)
100 if [[ -n ${name} ]]
101 then
102 ${MCORE_LIBDIR}/citrix-session --del --name "${name}"
103 else
104 for i in $(NOCOLORS=true ${MCORE_LIBDIR}/citrix-session --print)
105 do
106 # basename
107 name="${i%.*}"
108 ${MCORE_LIBDIR}/citrix-session --del --name "${name}"
109 done
110 fi
111 ;;
112
113 *) help_citrix_session && return 1 ;;
114 esac
115 }
116
117 get_citrix_session()
118 {
119 local action="${CLASS_ARGV[0]}"
120
121 [[ -z ${action} ]] && help_citrix_serverlist && return 1
122
123 case "${action}" in
124 print) ${MCORE_LIBDIR}/citrix-session --print ;;
125 query) ${MCORE_LIBDIR}/citrix-session --query ;;
126 *) help_citrix_session && return 1 ;;
127 esac
128 }
129
130 set_citrix_serverlist()
131 {
132 local action="${CLASS_ARGV[0]}"
133 local server="${CLASS_ARGV[1]}"
134 local i
135
136 [[ -z ${action} ]] && help_citrix_serverlist && return 1
137
138 case "${action}" in
139 add) ${MCORE_LIBDIR}/citrix-serverlist --add --server "${server}" ;;
140 del)
141 if [[ -n ${server} ]]
142 then
143 ${MCORE_LIBDIR}/citrix-serverlist --del --server "${server}"
144 else
145 # delete all items
146 for i in $(NOCOLORS=true ${MCORE_LIBDIR}/citrix-serverlist --print)
147 do
148 ${MCORE_LIBDIR}/citrix-serverlist --del --server "${i}"
149 done
150 fi
151 ;;
152 auto) ${MCORE_LIBDIR}/citrix-serverlist --auto ;;
153 *) help_citrix_serverlist && return 1 ;;
154 esac
155 }
156
157 get_citrix_serverlist()
158 {
159 local action="${CLASS_ARGV[0]}"
160
161 [[ -z ${action} ]] && help_citrix_serverlist && return 1
162
163 case "${action}" in
164 print) ${MCORE_LIBDIR}/citrix-serverlist --print ;;
165 query) ${MCORE_LIBDIR}/citrix-serverlist --query ;;
166 *) help_citrix_session && return 1 ;;
167 esac
168 }