1 |
#!/bin/sh |
# $Id$ |
2 |
|
|
3 |
# set_session_addmenuitem $name $exec $workdir $icon |
push_config 70_citrix_serverlist |
4 |
set_session_addmenuitem() |
push_config 80_citrix_session |
5 |
|
|
6 |
|
help_citrix_serverlist() |
7 |
{ |
{ |
8 |
local serial="$1" |
local serial="${CLASS_ARGV[0]}" |
9 |
local name="$2" |
control_client "${serial}" help citrix.serverlist |
10 |
local exec="$3" |
} |
|
local workdir="$4" |
|
|
local icon="$5" |
|
11 |
|
|
12 |
mysql_insert cfg_other_menuitems,serial="${serial}",name="${name}",exec="${exec}",workdir="${workdir}",icon="${workdir}" |
help_citrix_session() |
13 |
|
{ |
14 |
|
local serial="${CLASS_ARGV[0]}" |
15 |
|
control_client "${serial}" help citrix.session |
16 |
} |
} |
17 |
|
|
18 |
# control_session_addmenuitem $serial |
set_citrix_session() |
|
control_session_addmenuitem() |
|
19 |
{ |
{ |
20 |
local serial="$1" |
local serial="${CLASS_ARGV[0]}" |
21 |
local all |
local action="${CLASS_ARGV[1]}" |
22 |
local item |
local name="${CLASS_ARGV[2]}" |
23 |
|
local session="${CLASS_ARGV[3]}" |
24 |
|
local mode="${CLASS_ARGV[4]}" |
25 |
|
local user="${CLASS_ARGV[5]}" |
26 |
|
local domain="${CLASS_ARGV[6]}" |
27 |
|
local password="${CLASS_ARGV[7]}" |
28 |
|
local serverlist="${CLASS_ARGV[8]}" |
29 |
|
local autostart="${CLASS_ARGV[9]}" |
30 |
|
local id |
31 |
|
local enabled |
32 |
|
|
33 |
|
case "${action}" in |
34 |
|
add) enabled=1 ;; |
35 |
|
del) enabled=0 ;; |
36 |
|
*) |
37 |
|
eecho "Unknown action '${action}'" |
38 |
|
return 1 |
39 |
|
;; |
40 |
|
esac |
41 |
|
|
42 |
|
if [[ -z ${name} ]] |
43 |
|
then |
44 |
|
eecho "No name given" |
45 |
|
return 1 |
46 |
|
fi |
47 |
|
|
48 |
|
[[ -z ${autostart} ]] && autostart=0 |
49 |
|
|
50 |
|
id=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}' and name='${name}';") |
51 |
|
if [[ -n ${id} ]] |
52 |
|
then |
53 |
|
mysqldo "update cfg_sessions_citrix set name='${name}', session='${session}', filename='${filename}', username='${username}', domain='${domain}', password='${password}', serverlist='${serverlist}', autostart='${autostart}', enabled='${enabled}' where id=${id};" |
54 |
|
else |
55 |
|
mysqldo "insert into cfg_sessions_citrix(serial, name, session, filename, username, domain, password, serverlist, autostart, enabled) values('${serial}', '${name}', '${session}', ${store}', '${filename}', '${domain}', '${password}', '${serverlist}', '${autostart}', '${enabled}');" |
56 |
|
fi |
57 |
|
} |
58 |
|
|
59 |
# retvals of evaluate_table_xml |
control_citrix_session() |
60 |
local cfg_other_menuitems_serial |
{ |
61 |
local cfg_other_menuitems_id |
local serial="${CLASS_ARGV[0]}" |
62 |
local cfg_other_menuitems_name |
push_config_80_citrix_session "${serial}" |
63 |
local cfg_other_menuitems_exec |
} |
|
local cfg_other_menuitems_workdir |
|
|
local cfg_other_menuitems_icon |
|
64 |
|
|
65 |
all=$(mysqldo "select name from cfg_other_menuitems where serial='${serial}'") |
push_config_80_citrix_session() |
66 |
for item in ${all} |
{ |
67 |
do |
local serial="$1" |
68 |
# first of all get the vars |
local values |
69 |
evaluate_table_xml cfg_other_menuitems "where serial='${serial}' and name='${item}'" |
local id |
70 |
|
local serverlist |
71 |
|
|
72 |
control_client "${serial}" set session.addmenuitem \ |
values=$(mysqldo "select id from cfg_sessions_citrix where serial='${serial}';") |
73 |
"${cfg_other_menuitems_name}" \ |
for id in ${values} |
74 |
"${cfg_other_menuitems_exec}" \ |
do |
75 |
"${cfg_other_menuitems_workdir}" \ |
evaluate_table_xml cfg_sessions_citrix "where serial='${serial}'" |
76 |
"${cfg_other_menuitems_icon}" |
if [[ -z ${cfg_sessions_citrix_session} ]] |
77 |
|
then |
78 |
|
eecho "Session must not be empty id->'${id}'" |
79 |
|
continue |
80 |
|
fi |
81 |
|
if [[ -z ${cfg_sessions_citrix_enabled} ]] |
82 |
|
then |
83 |
|
eecho "Enabled must not be empty id->'${id}'" |
84 |
|
continue |
85 |
|
fi |
86 |
|
if [[ ${cfg_sessions_citrix_enabled} = 1 ]] |
87 |
|
then |
88 |
|
if [[ ! -z ${cfg_sessions_citrix_serverlist} ]] || [[ ${cfg_sessions_citrix_serverlist} != NULL ]] |
89 |
|
then |
90 |
|
serverlist="${cfg_sessions_citrix_serverlist}" |
91 |
|
fi |
92 |
|
control_client "${serial}" set citrix.session add "${cfg_sessions_citrix_name}" "${cfg_sessions_citrix_session}" "fullscreen" "${cfg_sessions_citrix_username}" "${cfg_sessions_citrix_domain}" "${cfg_sessions_citrix_password}" "${serverlist}" "${cfg_sessions_citrix_autostart}" |
93 |
|
elif [[ ${cfg_sessions_citrix_enabled} = 0 ]] |
94 |
|
then |
95 |
|
control_client "${serial}" set citrix.session del "${cfg_sessions_citrix_name}" |
96 |
|
# remove from database too |
97 |
|
mysqldo "delete from cfg_sessions_citrix where id='${id}';" |
98 |
|
else |
99 |
|
eecho "unknown enabled value id->'${id}', cfg_sessions_citrix_enabled -> '${cfg_sessions_citrix_enabled}'" |
100 |
|
return 1 |
101 |
|
fi |
102 |
done |
done |
103 |
} |
} |
104 |
|
|
105 |
# set_session_delmenuitem |
set_citrix_serverlist() |
106 |
control_session_delmenuitem() |
{ |
107 |
|
local serial="${CLASS_ARGV[0]}" |
108 |
|
local action="${CLASS_ARGV[1]}" |
109 |
|
local host="${CLASS_ARGV[2]}" |
110 |
|
local id |
111 |
|
local enabled |
112 |
|
|
113 |
|
case "${action}" in |
114 |
|
add) enabled=1 ;; |
115 |
|
del) enabled=0 ;; |
116 |
|
*) |
117 |
|
eecho "Unknown action '${action}'" |
118 |
|
return 1 |
119 |
|
;; |
120 |
|
esac |
121 |
|
|
122 |
|
if [[ -z ${store} ]] |
123 |
|
then |
124 |
|
eecho "No store given" |
125 |
|
return 1 |
126 |
|
fi |
127 |
|
|
128 |
|
id=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}' and host='${host}';") |
129 |
|
if [[ -n ${id} ]] |
130 |
|
then |
131 |
|
mysqldo "update cfg_citrix_serverlist set host='${host}', enabled='${enabled}' where id=${id};" |
132 |
|
else |
133 |
|
mysqldo "insert into cfg_citrx_serverlist(serial, store, enabled) values('${serial}', '${store}', '${enabled}');" |
134 |
|
fi |
135 |
|
} |
136 |
|
|
137 |
|
control_citrix_serverlist() |
138 |
|
{ |
139 |
|
local serial="${CLASS_ARGV[0]}" |
140 |
|
push_config_70_citrix_serverlist "${serial}" |
141 |
|
} |
142 |
|
|
143 |
|
push_config_70_citrix_serverlist() |
144 |
{ |
{ |
145 |
local serial="$1" |
local serial="$1" |
146 |
|
local values |
147 |
|
local id |
148 |
|
|
149 |
# no arguments given to del all items! |
values=$(mysqldo "select id from cfg_citrix_serverlist where serial='${serial}';") |
150 |
control_client "${serial}" set session.delmenuitem |
for id in ${values} |
151 |
|
do |
152 |
|
evaluate_table_xml cfg_citrix_serverlist "where serial='${serial}'" |
153 |
|
if [[ -z ${cfg_citrix_serverlist_host} ]] |
154 |
|
then |
155 |
|
eecho "Host must not be empty id->'${id}'" |
156 |
|
continue |
157 |
|
fi |
158 |
|
if [[ -z ${cfg_citrix_serverlist_enabled} ]] |
159 |
|
then |
160 |
|
eecho "Enabled must not be empty id->'${id}'" |
161 |
|
continue |
162 |
|
fi |
163 |
|
if [[ ${cfg_citrix_serverlist_enabled} = 1 ]] |
164 |
|
then |
165 |
|
control_client "${serial}" set citrix.serverlist add "${cfg_citrix_serverlist_host}" |
166 |
|
elif [[ ${cfg_citrix_serverlist_enabled} = 0 ]] |
167 |
|
then |
168 |
|
control_client "${serial}" set citrix.serverlist del "${cfg_citrix_serverlist_host}" |
169 |
|
# remove from database too |
170 |
|
mysqldo "delete from cfg_citrix_serverlist where id='${id}';" |
171 |
|
else |
172 |
|
eecho "unknown enabled value id->'${id}', cfg_citrix_serverlist_enabled -> '${cfg_citrix_serverlist_enabled}'" |
173 |
|
return 1 |
174 |
|
fi |
175 |
|
done |
176 |
} |
} |