--- alx-src/trunk/alxconfig-ng/functions/config_sessions.sh 2005/04/12 20:54:19 241 +++ alx-src/trunk/alxconfig-ng/functions/config_sessions.sh 2005/04/13 16:09:53 246 @@ -1,4 +1,4 @@ -# $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.4 2005-04-12 20:54:16 niro Exp $ +# $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.5 2005-04-13 16:09:53 niro Exp $ # configures ica-sessions on the host via mysql db settings get_sessions_settings() @@ -10,7 +10,8 @@ #get settings from database all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ - "select session from cfg_sessions where serial='${ALX_SERIAL}'") + "select filename from cfg_sessions where serial='${ALX_SERIAL}'") + #"select session from cfg_sessions where serial='${ALX_SERIAL}'") #split'em up and put in an array (only if $all not zero) declare -i i=0 @@ -29,10 +30,99 @@ export ALX_SESSIONS } +get_autostart_settings() +{ + #get settings from database + ALX_AUTOSTART=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select session from cfg_autostart where serial='${ALX_SERIAL}'") + + export ALX_SESSIONS +} + +generate_ica_session_files() +{ + local all_ids + local i + local x + local k + local server + local ses_session + local ses_filename + local ses_username + local ses_domain + local ses_password + local ses_browseradrs + + #get settings from database + all_ids=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select id from cfg_sessions where serial='${ALX_SERIAL}'") + + declare -i x=0 + for i in ${all_ids} + do + # get settings + ses_session[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select session from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + ses_filename[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select filename from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + ses_username[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select username from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + ses_domain[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select domain from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + ses_password[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select password from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + ses_browseradrs[${x}]=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ + "select browseradrs from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'") + + # write session files + echo '[WFClient]' > ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'Version=2' >> ${ALX_ICA_SESSIONS}/${ses_filename} + OLD_IFS="$IFS" + IFS=";" + declare -i k=0 + for server in ${ses_browseradrs[${x}]} + do + (( k++ )) + echo "TcpBrowserAddress${k}=${server}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + done + IFS="${OLD_IFS}" + unset k + unset OLD_IFS + + echo 'ScreenPercent=0' >> ${ALX_ICA_SESSIONS}/${ses_filename} + + echo '[ApplicationServers]' >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "${ses_session[${x}]}=" >> ${ALX_ICA_SESSIONS}/${ses_filename} + + echo "[${ses_session[${x}]}]" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "Address=${ses_session[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "InitialProgram=#${ses_session[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'DesiredColor=3' >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'TransportDriver=TCP/IP' >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'WinStationDriver=ICA 3.0' >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "ClearPassword=${ses_password[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "Username=${ses_username[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo "Domain=${ses_domain[${x}]}" >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'UseFullScreen=Yes' >> ${ALX_ICA_SESSIONS}/${ses_filename} + echo 'NoWindowManager=True' >> ${ALX_ICA_SESSIONS}/${ses_filename} + done + + (( x++ )) +} + config_sessions() { + # generate ica session files + generate_ica_session_files + #first of all get the vars get_sessions_settings + get_autostart_settings local count=${#ALX_SESSIONS[*]} local icon @@ -62,6 +152,13 @@ cat ${ALX_SKELETONS}/fluxbox/apps \ > ${ALX_UNPRIV_HOME}/.fluxbox/apps + # add autostart session + if [[ ${ALX_AUTOSTART} != "" ]] + then + echo "[startup] {wfica ${ALX_ICA_SESSIONS}/${ALX_AUTOSTART}}" \ + >> ${ALX_UNPRIV_HOME}/.fluxbox/apps + fi + # fluxbox hotkeys cat ${ALX_SKELETONS}/fluxbox/apps \ > ${ALX_UNPRIV_HOME}/.fluxbox/keys