Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 239 - (hide annotations) (download) (as text)
Tue Apr 12 20:46:52 2005 UTC (19 years, 1 month ago) by niro
File MIME type: application/x-sh
File size: 3101 byte(s)
import from aka-cvs

1 niro 239 # $Header: /home/cvsd/alx-cvs/alx-src/alxconfig-ng/functions/config_sessions.sh,v 1.3 2005-04-12 20:45:55 niro Exp $
2 niro 236 # configures ica-sessions on the host via mysql db settings
3    
4     get_sessions_settings()
5     {
6     local x i all count
7    
8     #all arrays:
9     # -> session1 session2 ... sessionN
10    
11     #get settings from database
12     all=$(mysql_command ${SQL_USER} ${SQL_PASS} ${SQL_HOST} ${SQL_DB} \
13     "select session from cfg_sessions where serial='${ALX_SERIAL}'")
14    
15     #split'em up and put in an array (only if $all not zero)
16     declare -i i=0
17     if [ -n "${all}" ]
18     then
19     for x in ${all}
20     do
21     ALX_SESSIONS[${i}]=${x}
22     ((i++))
23     done
24     count=${i}
25     else
26     count=0
27     fi
28    
29     export ALX_SESSIONS
30     }
31    
32     config_sessions()
33     {
34     #first of all get the vars
35     get_sessions_settings
36    
37     local count=${#ALX_SESSIONS[*]}
38     local icon
39    
40     # DEBUG
41     declare -i i=0
42     echo count=${count}
43     echo "Number of new sessions: ${count}"
44     for ((i=0; i < count; i++))
45     do
46     echo "${i} - ${ALX_SESSIONS[${i}]}"
47     done
48    
49     # now setup fluxbox for user station
50    
51     # create a fresh fluxbox directory
52     [ -d ${ALX_UNPRIV_HOME}/.fluxbox ] && rm -rf ${ALX_UNPRIV_HOME}/.fluxbox
53     install -d ${ALX_UNPRIV_HOME}/.fluxbox
54    
55     # now generate fluxbox config files
56    
57     # fluxbox main config
58     cat ${ALX_SKELETONS}/fluxbox/init \
59     > ${ALX_UNPRIV_HOME}/.fluxbox/init
60    
61     # fluxbox autostart
62     cat ${ALX_SKELETONS}/fluxbox/apps \
63     > ${ALX_UNPRIV_HOME}/.fluxbox/apps
64    
65     # fluxbox hotkeys
66     cat ${ALX_SKELETONS}/fluxbox/apps \
67     > ${ALX_UNPRIV_HOME}/.fluxbox/keys
68    
69     # fluxbox menu header
70     cat ${ALX_SKELETONS}/fluxbox/menu.header \
71     > ${ALX_UNPRIV_HOME}/.fluxbox/menu
72    
73 niro 239 # add a newline (maybe there is no crlf in the header)
74     echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
75    
76 niro 236 # fluxbox menu sessions
77     for (( i=0; i < count; i++ ))
78     do
79 niro 239 echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \
80 niro 236 >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
81     done
82    
83     # fluxbox menu footer
84     cat ${ALX_SKELETONS}/fluxbox/menu.footer \
85     >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
86    
87 niro 239 # add a newline (maybe there is no crlf in the footer)
88     echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu
89 niro 236
90     # now we generate the desktop icons
91     cat ${ALX_SKELETONS}/idesk/ideskrc \
92 niro 237 > ${ALX_UNPRIV_HOME}/.ideskrc
93 niro 236
94     # whipe out old stuff and install a fresh directory
95     [ -d ${ALX_UNPRIV_HOME}/.idesktop ] && rm -rf ${ALX_UNPRIV_HOME}/.idesktop
96     install -d ${ALX_UNPRIV_HOME}/.idesktop
97    
98     local name
99     for (( i=0; i < count; i++ ))
100     do
101     name="$(basename ${ALX_SESSIONS[${i}]} .ica)"
102    
103     if [ -f ${ALX_SESSIONS_ICONS}/${name}.png ]
104     then
105     icon="${ALX_SESSIONS_ICONS}/${name}.png"
106     else
107     icon="${ALX_SESSIONS_ICONS}/default.png"
108     fi
109    
110     echo "table Icon
111     Caption: ${name}
112 niro 239 Command: wfica ${ALX_ICA_SESSIONS}/${name}.ica
113 niro 236 Icon: ${icon}
114     end" > ${ALX_UNPRIV_HOME}/.idesktop/${name}.lnk
115     done
116    
117     # set correct permissions
118     chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}
119     chown ${ALX_UNPRIV_USER}:${ALX_UNPRIV_GROUP} ${ALX_UNPRIV_HOME}/.fluxbox
120     chmod 0755 ${ALX_UNPRIV_HOME}/.fluxbox
121     chmod 0755 ${ALX_UNPRIV_HOME}/.idesktop
122     chmod 0644 ${ALX_UNPRIV_HOME}/.ideskrc
123    
124    
125     # unset vars
126     unset ALX_SESSIONS
127     }