Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 239 - (show annotations) (download) (as text)
Tue Apr 12 20:46:52 2005 UTC (19 years 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 }