Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 2275 - (hide annotations) (download)
Tue Jan 14 13:29:57 2014 UTC (10 years, 3 months ago) by niro
File size: 4567 byte(s)
-fixed broken if-condition
1 niro 1266 # $Id$
2    
3     provide citrix ica
4    
5     # needs fluxbox!
6     require fluxbox basic-video
7    
8 niro 2259 # citrix global config
9     include @@SYSCONFDIR@@/mcore/citrix.conf
10    
11 niro 1266 help_citrix_serverlist()
12     {
13 niro 2259 mecho "get citrix.serverlist [action]"
14 niro 1266 mecho " Shows all hosts added on the serverlist."
15 niro 2259 mecho " [actions]:"
16     mecho " print - prints local configured serverlist"
17     mecho " query - get serverlist of the farm from given [server]"
18 niro 1266 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 niro 2259 mecho " auto - queries given [server] for the serverlist and adds all of them"
25 niro 1266 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 niro 2259 mecho " print - prints all local configured sessions"
36     mecho " query - get sessionlist of the farm from given [server]"
37 niro 1266 mecho
38 niro 2038 mecho "set citrix.session [action] [name] [session] [mode] [user] [domain] [password]"
39 niro 1266 mecho " Adds or delets a ICA session."
40     mecho " Available actions:"
41     mecho " add - adds a new ica session"
42 niro 2272 mecho " del - deletes ica session with name [name]"
43     mecho " if no [name] given, all sessions will be deleted"
44 niro 1266 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 niro 2269 local action="${CLASS_ARGV[0]}"
61     local name="${CLASS_ARGV[1]}"
62     local session="${CLASS_ARGV[2]}"
63     local mode="${CLASS_ARGV[3]}"
64 niro 2271 local user="${CLASS_ARGV[4]}"
65 niro 2269 local domain="${CLASS_ARGV[5]}"
66     local password="${CLASS_ARGV[6]}"
67 niro 1266 local i
68    
69     [[ -z ${action} ]] && help_citrix_session && return 1
70    
71     case "${action}" in
72     add)
73 niro 2272 # requires name
74     [[ -z ${name} ]] && help_citrix_session && return 1
75 niro 1266 # action 'add' need mode too
76     [[ -z ${mode} ]] && help_citrix_session && return 1
77 niro 2038 # and session
78     [[ -z ${session} ]] && help_citrix_session && return 1
79 niro 1266
80     # other sanity checks
81     case "${mode}" in
82     fullscreen) ;;
83     seamless) ;;
84     *x*) ;;
85 niro 2274 *) help_citrix_session && return 1 ;;
86 niro 1266 esac
87    
88 niro 2272 # 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 niro 1266
98     # generate fluxbox menu entry
99 niro 2038 set_fluxbox_menuitem add "${name}" "wfica ${icafile}"
100 niro 1266 ;;
101    
102     del)
103 niro 2273 if [[ -n ${name} ]]
104 niro 1266 then
105 niro 2272 ${MCORE_LIBDIR}/citrix-session --del --name "${name}"
106 niro 2038 set_fluxbox_menuitem del "${name}"
107 niro 2272 else
108     for i in $(NOCOLORS=true ${MCORE_LIBDIR}/citrix-session --print)
109 niro 1266 do
110 niro 2272 ${MCORE_LIBDIR}/citrix-session --del --name "${i}"
111     set_fluxbox_menuitem del "${name}"
112 niro 1266 done
113 niro 2275 fi
114 niro 1266 ;;
115    
116     *) help_citrix_session && return 1 ;;
117     esac
118     }
119    
120     get_citrix_session()
121     {
122 niro 2269 local action="${CLASS_ARGV[0]}"
123 niro 2259
124     [[ -z ${action} ]] && help_citrix_serverlist && return 1
125    
126     case "${action}" in
127 niro 2272 print) citrix-session --print ;;
128     query) citrix-session --query ;;
129 niro 2261 *) help_citrix_session && return 1 ;;
130 niro 2259 esac
131 niro 1266 }
132    
133     set_citrix_serverlist()
134     {
135 niro 2269 local action="${CLASS_ARGV[0]}"
136     local server="${CLASS_ARGV[1]}"
137 niro 2259 local i
138 niro 1266
139     [[ -z ${action} ]] && help_citrix_serverlist && return 1
140    
141     case "${action}" in
142 niro 2272 add) ${MCORE_LIBDIR}/citrix-serverlist --add --server "${server}" ;;
143 niro 1266 del)
144 niro 2272 if [[ -n ${server} ]]
145 niro 1266 then
146 niro 2272 ${MCORE_LIBDIR}/citrix-serverlist --del --server "${server}"
147     else
148 niro 1266 # delete all items
149 niro 2272 for i in $(NOCOLORS=true ${MCORE_LIBDIR}/citrix-serverlist --print)
150 niro 2259 do
151 niro 2272 ${MCORE_LIBDIR}/citrix-serverlist --del --server "${i}"
152 niro 2259 done
153     fi
154     ;;
155 niro 2272 auto) ${MCORE_LIBDIR}/citrix-serverlist --auto ;;
156 niro 1266 *) help_citrix_serverlist && return 1 ;;
157     esac
158     }
159    
160     get_citrix_serverlist()
161     {
162 niro 2269 local action="${CLASS_ARGV[0]}"
163 niro 2259
164     [[ -z ${action} ]] && help_citrix_serverlist && return 1
165    
166     case "${action}" in
167 niro 2272 print) citrix-serverlist --print ;;
168     query) citrix-serverlist --query ;;
169 niro 2261 *) help_citrix_session && return 1 ;;
170 niro 2259 esac
171 niro 1266 }