Magellan Linux

Diff of /mcore-src/trunk/mcore-tools/src/modules/citrix/citrix.control.class.in

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 2288 by niro, Tue Jan 14 16:17:56 2014 UTC revision 2642 by niro, Thu Oct 8 10:23:56 2015 UTC
# Line 1  Line 1 
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  }  }

Legend:
Removed from v.2288  
changed lines
  Added in v.2642