# $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.3 2005-04-12 20:45:55 niro Exp $ # configures ica-sessions on the host via mysql db settings get_sessions_settings() { local x i all count #all arrays: # -> session1 session2 ... sessionN #get settings from database all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \ "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 if [ -n "${all}" ] then for x in ${all} do ALX_SESSIONS[${i}]=${x} ((i++)) done count=${i} else count=0 fi export ALX_SESSIONS } config_sessions() { #first of all get the vars get_sessions_settings local count=${#ALX_SESSIONS[*]} local icon # DEBUG declare -i i=0 echo count=${count} echo "Number of new sessions: ${count}" for ((i=0; i < count; i++)) do echo "${i} - ${ALX_SESSIONS[${i}]}" done # now setup fluxbox for user station # create a fresh fluxbox directory [ -d ${ALX_UNPRIV_HOME}/.fluxbox ] && rm -rf ${ALX_UNPRIV_HOME}/.fluxbox install -d ${ALX_UNPRIV_HOME}/.fluxbox # now generate fluxbox config files # fluxbox main config cat ${ALX_SKELETONS}/fluxbox/init \ > ${ALX_UNPRIV_HOME}/.fluxbox/init # fluxbox autostart cat ${ALX_SKELETONS}/fluxbox/apps \ > ${ALX_UNPRIV_HOME}/.fluxbox/apps # fluxbox hotkeys cat ${ALX_SKELETONS}/fluxbox/apps \ > ${ALX_UNPRIV_HOME}/.fluxbox/keys # fluxbox menu header cat ${ALX_SKELETONS}/fluxbox/menu.header \ > ${ALX_UNPRIV_HOME}/.fluxbox/menu # add a newline (maybe there is no crlf in the header) echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu # fluxbox menu sessions for (( i=0; i < count; i++ )) do echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \ >> ${ALX_UNPRIV_HOME}/.fluxbox/menu done # fluxbox menu footer cat ${ALX_SKELETONS}/fluxbox/menu.footer \ >> ${ALX_UNPRIV_HOME}/.fluxbox/menu # add a newline (maybe there is no crlf in the footer) echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu # now we generate the desktop icons cat ${ALX_SKELETONS}/idesk/ideskrc \ > ${ALX_UNPRIV_HOME}/.ideskrc # whipe out old stuff and install a fresh directory [ -d ${ALX_UNPRIV_HOME}/.idesktop ] && rm -rf ${ALX_UNPRIV_HOME}/.idesktop install -d ${ALX_UNPRIV_HOME}/.idesktop local name for (( i=0; i < count; i++ )) do name="$(basename ${ALX_SESSIONS[${i}]} .ica)" if [ -f ${ALX_SESSIONS_ICONS}/${name}.png ] then icon="${ALX_SESSIONS_ICONS}/${name}.png" else icon="${ALX_SESSIONS_ICONS}/default.png" fi echo "table Icon Caption: ${name} Command: wfica ${ALX_ICA_SESSIONS}/${name}.ica Icon: ${icon} end" > ${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk done # set correct permissions chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME} chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop chmod 0644 ${ALX_UNPRIV_HOME}/.ideskrc # unset vars unset ALX_SESSIONS }