Magellan Linux

Diff of /alx-src/trunk/alxconfig-ng/functions/config_sessions.sh

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

revision 327 by niro, Tue Sep 6 08:43:16 2005 UTC revision 377 by niro, Thu Jun 28 12:49:32 2007 UTC
# Line 1  Line 1 
1  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.15 2005-09-06 08:43:16 niro Exp $  # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.19 2007-06-28 12:49:32 niro Exp $
2  # configures ica-sessions on the host via mysql db settings  # configures ica-sessions on the host via mysql db settings
3    
4  get_sessions_settings()  get_sessions_settings()
# Line 9  get_sessions_settings() Line 9  get_sessions_settings()
9   # ->  session1 session2 ... sessionN   # ->  session1 session2 ... sessionN
10    
11   # get settings from database   # get settings from database
12   all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   all=$(mysqldo "select filename from cfg_sessions where serial='${ALX_SERIAL}'")
  "select filename from cfg_sessions where serial='${ALX_SERIAL}'")  
13    
14   # split'em up and put in an array (only if $all not zero)   # split'em up and put in an array (only if $all not zero)
15   declare -i i=0   declare -i i=0
# Line 27  get_sessions_settings() Line 26  get_sessions_settings()
26   fi   fi
27    
28   # get settings from database   # get settings from database
29   ALX_PROGRAMS=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ALX_PROGRAMS=$(mysqldo "select name from cfg_other_menuitems where serial='${ALX_SERIAL}'")
  "select name from cfg_other_menuitems where serial='${ALX_SERIAL}'")  
30    
31   export ALX_SESSIONS   export ALX_SESSIONS
32   export ALX_PROGRAMS   export ALX_PROGRAMS
# Line 37  get_sessions_settings() Line 35  get_sessions_settings()
35  get_autostart_settings()  get_autostart_settings()
36  {  {
37   # get settings from database   # get settings from database
38   ALX_AUTOSTART=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ALX_AUTOSTART=$(mysqldo "select session from cfg_autostart where serial='${ALX_SERIAL}'")
  "select session from cfg_autostart where serial='${ALX_SERIAL}'")  
39    
40   export ALX_AUTOSTART   export ALX_AUTOSTART
41  }  }
42    
43    get_screensaver_settings()
44    {
45     ALX_SCRN_SAVER=$(mysqldo "select screensaver from cfg_screensaver where serial='${ALX_SERIAL}'")
46     ALX_SCRN_TIMEOUT=$(mysqldo "select timeout from cfg_screensaver where serial='${ALX_SERIAL}'")
47     ALX_SCRN_PASSWD=$(mysqldo "select password from cfg_screensaver where serial='${ALX_SERIAL}'")
48    
49     export ALX_SCRN_SAVER
50     export ALX_SCRN_TIMEOUT
51     export ALX_SCRN_PASSWD
52    }
53    
54  generate_ica_session_files()  generate_ica_session_files()
55  {  {
56   local all_ids   local all_ids
# Line 56  generate_ica_session_files() Line 64  generate_ica_session_files()
64   local ses_password   local ses_password
65   local ses_browseradrs   local ses_browseradrs
66   local ses_colors   local ses_colors
67     local ses_display_mode
68     local ses_display_x
69     local ses_display_y
70    
71   # get settings from database   # get settings from database
72   all_ids=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   all_ids=$(mysqldo "select id from cfg_sessions where serial='${ALX_SERIAL}'")
  "select id from cfg_sessions where serial='${ALX_SERIAL}'")  
73    
74   for i in ${all_ids}   for i in ${all_ids}
75   do   do
76   # get settings   # get settings
77   ses_session=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ses_session=$(mysqldo "select session from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
78   "select session from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   ses_filename=$(mysqldo "select filename from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
79     ses_username=$(mysqldo "select username from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
80   ses_filename=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ses_domain=$(mysqldo "select domain from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
81   "select filename from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   ses_password=$(mysqldo "select password from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
82     ses_browseradrs=$(mysqldo "select browseradrs from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
  ses_username=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select username from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")  
   
  ses_domain=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select domain from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")  
   
  ses_password=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select password from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")  
83    
84   ses_browseradrs=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   # get the session display mode seamless|fullscreen|or an resolution
85   "select browseradrs from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")   ses_display_mode=$(mysqldo "select displaymode from cfg_sessions where serial='${ALX_SERIAL}' and id='${i}'")
86    
87   # get the right colors   # get the right colors
88   ses_colors=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   ses_colors=$(mysqldo "select depth from cfg_graphic where serial='${ALX_SERIAL}'")
89   "select depth from cfg_graphic where serial='${ALX_SERIAL}'")   # convert to ica session file values
90   case ${ses_colors} in   case ${ses_colors} in
91   24) ses_colors="8";;   24) ses_colors="8";;
92   16) ses_colors="4";;   16) ses_colors="4";;
# Line 106  generate_ica_session_files() Line 108  generate_ica_session_files()
108   IFS="${OLD_IFS}"   IFS="${OLD_IFS}"
109   unset x   unset x
110   unset OLD_IFS   unset OLD_IFS
111    
112   echo 'ScreenPercent=0' >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo 'ScreenPercent=0' >> ${ALX_ICA_SESSIONS}/${ses_filename}
113    
114   echo '[ApplicationServers]' >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo '[ApplicationServers]' >> ${ALX_ICA_SESSIONS}/${ses_filename}
115   echo "${ses_session}=" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "${ses_session}=" >> ${ALX_ICA_SESSIONS}/${ses_filename}
116    
117   echo "[${ses_session}]" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "[${ses_session}]" >> ${ALX_ICA_SESSIONS}/${ses_filename}
118   echo "Address=${ses_session}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "Address=${ses_session}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
119   echo "InitialProgram=#${ses_session}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "InitialProgram=#${ses_session}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
# Line 121  generate_ica_session_files() Line 123  generate_ica_session_files()
123   echo "ClearPassword=${ses_password}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "ClearPassword=${ses_password}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
124   echo "Username=${ses_username}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "Username=${ses_username}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
125   echo "Domain=${ses_domain}" >> ${ALX_ICA_SESSIONS}/${ses_filename}   echo "Domain=${ses_domain}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
126   echo 'UseFullScreen=Yes' >> ${ALX_ICA_SESSIONS}/${ses_filename}  
127   echo 'NoWindowManager=True' >> ${ALX_ICA_SESSIONS}/${ses_filename}   # use the right display settings
128     case ${ses_display_mode} in
129     # fullscreen mode
130     fullscreen)
131     echo 'UseFullScreen=Yes' >> ${ALX_ICA_SESSIONS}/${ses_filename}
132     echo 'NoWindowManager=True' >> ${ALX_ICA_SESSIONS}/${ses_filename}
133     ;;
134     # seamless window mode
135     seamless)
136     echo 'TWIMode=On' >> ${ALX_ICA_SESSIONS}/${ses_filename}
137     ;;
138     # a desired resolution
139     *x*)
140     # split the resolutions
141     ses_display_x=$(echo ${ses_display_mode} | cut -dx -f1)
142     ses_display_y=$(echo ${ses_display_mode} | cut -dx -f2)
143     echo "DesiredHRES=${ses_display_x}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
144     echo "DesiredVRES=${ses_display_x}" >> ${ALX_ICA_SESSIONS}/${ses_filename}
145     ;;
146     # but default to fullscreen if nothing met
147     *)
148     echo 'UseFullScreen=Yes' >> ${ALX_ICA_SESSIONS}/${ses_filename}
149     echo 'NoWindowManager=True' >> ${ALX_ICA_SESSIONS}/${ses_filename}
150     ;;
151     esac
152   done   done
153  }  }
154    
# Line 183  get_other_menuitems() Line 209  get_other_menuitems()
209   unset workdir   unset workdir
210   unset icon   unset icon
211    
212   name=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   name=$(mysqldo "select name from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
213   "select name from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")   exec=$(mysqldo "select exec from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
214     workdir=$(mysqldo "select workdir from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
215   exec=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   icon=$(mysqldo "select icon from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")
  "select exec from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")  
   
  workdir=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select workdir from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")  
   
  icon=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \  
  "select icon from cfg_other_menuitems where serial='${ALX_SERIAL}' and name='${x}'")  
   
  # debug only  
  #echo "DEBUG: ${x}: name:'${name}' exec:'${exec}' workdir:'${workdir}' ic$  
216    
217   # now echo config line for fluxbox-menu   # now echo config line for fluxbox-menu
218   # make it "configureable" :P   # make it "configureable" :P
  #[ -n "${workdir}" ] && workdir="cd ${workdir};"  
219   [ -n "${workdir}" ] && workdir="--workdir ${workdir}"   [ -n "${workdir}" ] && workdir="--workdir ${workdir}"
220   [ -n "${icon}" ] && icon="<${icon}>"   [ -n "${icon}" ] && icon="<${icon}>"
221    
# Line 293  generate_all_desktop_icons() Line 308  generate_all_desktop_icons()
308   local progsh_path   local progsh_path
309    
310   # get the resolution   # get the resolution
311   res=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   res=$(mysqldo "select resolution from cfg_graphic where serial='${ALX_SERIAL}'")
  "select resolution from cfg_graphic where serial='${ALX_SERIAL}'")  
312    
313   # split res to x & y   # split res to x & y
314   xres="$(echo ${res} | cut -dx -f1)"   xres="$(echo ${res} | cut -dx -f1)"
# Line 350  generate_all_desktop_icons() Line 364  generate_all_desktop_icons()
364   basename_item="$(basename ${item} .ica)"   basename_item="$(basename ${item} .ica)"
365   generate_icon \   generate_icon \
366   --name "${basename_item}" \   --name "${basename_item}" \
367   --command "wfica ${ALX_ICA_SESSIONS}/${item}" \   --command "nice -n 19 wfica ${ALX_ICA_SESSIONS}/${item}" \
368   --icon "${ALX_SESSIONS_ICONS}/${basename_item}.png" \   --icon "${ALX_SESSIONS_ICONS}/${basename_item}.png" \
369   --dest "${ALX_UNPRIV_HOME}/.xtdesktop/${basename_item}.lnk" \   --dest "${ALX_UNPRIV_HOME}/.xtdesktop/${basename_item}.lnk" \
370   --xres "${x}" \   --xres "${x}" \
# Line 405  generate_all_desktop_icons() Line 419  generate_all_desktop_icons()
419   local osversion   local osversion
420    
421   osversion="$(< /etc/mageversion)"   osversion="$(< /etc/mageversion)"
422   hostname=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \   hostname=$(mysqldo "select hostname from cfg_network where serial='${ALX_SERIAL}'")
  "select hostname from cfg_network where serial='${ALX_SERIAL}'")  
423   sysinfo="Hostname: ${hostname} Serial: #${ALX_SERIAL} OS: alx-${osversion} Kernel: $(uname -r)"   sysinfo="Hostname: ${hostname} Serial: #${ALX_SERIAL} OS: alx-${osversion} Kernel: $(uname -r)"
424    
425   # now get the right position:   # now get the right position:
# Line 437  config_sessions() Line 450  config_sessions()
450   # first of all get the vars   # first of all get the vars
451   get_sessions_settings   get_sessions_settings
452   get_autostart_settings   get_autostart_settings
453     get_screensaver_settings
454    
455   local count=${#ALX_SESSIONS[*]}   local count=${#ALX_SESSIONS[*]}
456   local icon   local icon
457   local i   local i
458    
  # 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  
   
459   # now setup fluxbox for user station   # now setup fluxbox for user station
460    
461   # create a fresh fluxbox directory   # create a fresh fluxbox directory
# Line 467  config_sessions() Line 472  config_sessions()
472   cat ${ALX_SKELETONS}/fluxbox/apps \   cat ${ALX_SKELETONS}/fluxbox/apps \
473   > ${ALX_UNPRIV_HOME}/.fluxbox/apps   > ${ALX_UNPRIV_HOME}/.fluxbox/apps
474    
475     # add screensaver
476     if [[ -n ${ALX_SCRN_SAVER} ]] && [[ -n ${ALX_SCRN_TIMEOUT} ]]
477     then
478     local ALX_PASSWD_CMD
479    
480     if [[ -z ${ALX_SCRN_PASSWD} ]] || [[ ${ALX_SCRN_PASSWD} = NULL ]]
481     then
482     ALX_PASSWD_CMD="-nolock"
483     else
484     ALX_PASSWD_CMD="-cpasswd $(openssl passwd ${ALX_SCRN_PASSWD})"
485     fi
486    
487     echo "[startup] {nohup xautolock -time ${ALX_SCRN_TIMEOUT} -locker 'xlock -mode ${ALX_SCRN_SAVER} ${ALX_PASSWD_CMD}' > /dev/null &}" \
488     >> ${ALX_UNPRIV_HOME}/.fluxbox/apps
489     fi
490    
491   # add autostart session   # add autostart session
492   if [[ ${ALX_AUTOSTART} != "" ]]   if [[ ${ALX_AUTOSTART} != "" ]]
493   then   then
494   echo "[startup] {wfica ${ALX_ICA_SESSIONS}/${ALX_AUTOSTART}}" \   echo "[startup] {nice -n 19 wfica ${ALX_ICA_SESSIONS}/${ALX_AUTOSTART}}" \
495   >> ${ALX_UNPRIV_HOME}/.fluxbox/apps   >> ${ALX_UNPRIV_HOME}/.fluxbox/apps
496   fi   fi
497    
498   # fluxbox hotkeys   # fluxbox hotkeys
499   cat ${ALX_SKELETONS}/fluxbox/apps \   cat ${ALX_SKELETONS}/fluxbox/keys \
500   > ${ALX_UNPRIV_HOME}/.fluxbox/keys   > ${ALX_UNPRIV_HOME}/.fluxbox/keys
501    
502   # fluxbox menu header   # fluxbox menu header
# Line 494  config_sessions() Line 515  config_sessions()
515   for (( i=0; i < count; i++ ))   for (( i=0; i < count; i++ ))
516   do   do
517   [ -n "${ALX_SESSIONS[${i}]}" ] && \   [ -n "${ALX_SESSIONS[${i}]}" ] && \
518   echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \   echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {nice -n 19 wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \
519   >> ${ALX_UNPRIV_HOME}/.fluxbox/menu   >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
520   done   done
521    
# Line 515  config_sessions() Line 536  config_sessions()
536   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}
537   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox   chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox
538   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox   chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox
539   chmod 0755 ${ALX_UNPRIV_HOME}/.xtdesktop   chmod 0755 ${ALX_UNPRIV_HOME}/.xtdesktop
540   chmod 0644 ${ALX_UNPRIV_HOME}/.xtdeskrc   chmod 0644 ${ALX_UNPRIV_HOME}/.xtdeskrc
541    
542   # unset vars   # unset vars
543   unset ALX_SESSIONS   unset ALX_SESSIONS
544   unset ALX_PROGRAMS   unset ALX_PROGRAMS
545     unset ALX_SCRN_SAVER
546     unset ALX_SCRN_TIMEOUT
547     unset ALX_SCRN_PASSWD
548  }  }
549    

Legend:
Removed from v.327  
changed lines
  Added in v.377