Annotation of /alx-src/trunk/alxconfig-ng/functions/config_sessions.sh
Parent Directory | Revision Log
Revision 239 -
(hide annotations)
(download)
(as text)
Tue Apr 12 20:46:52 2005 UTC (19 years, 5 months ago) by niro
File MIME type: application/x-sh
File size: 3101 byte(s)
Tue Apr 12 20:46:52 2005 UTC (19 years, 5 months 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 | } |