Contents of /alx-src/trunk/alxconfig-ng/functions/config_sessions.sh
Parent Directory | Revision Log
Revision 239 -
(show 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 | # $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 | # 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 | # add a newline (maybe there is no crlf in the header) |
74 | echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu |
75 | |
76 | # fluxbox menu sessions |
77 | for (( i=0; i < count; i++ )) |
78 | do |
79 | echo "[exec] ($(basename ${ALX_SESSIONS[${i}]} .ica)) {wfica ${ALX_ICA_SESSIONS}/${ALX_SESSIONS[${i}]}}" \ |
80 | >> ${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 | # add a newline (maybe there is no crlf in the footer) |
88 | echo >> ${ALX_UNPRIV_HOME}/.fluxbox/menu |
89 | |
90 | # now we generate the desktop icons |
91 | cat ${ALX_SKELETONS}/idesk/ideskrc \ |
92 | > ${ALX_UNPRIV_HOME}/.ideskrc |
93 | |
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 | Command: wfica ${ALX_ICA_SESSIONS}/${name}.ica |
113 | 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 | } |