Magellan Linux

Contents of /trunk/splashutils-magellan/splash-functions

Parent Directory Parent Directory | Revision Log Revision Log


Revision 9 - (show annotations) (download)
Fri Mar 4 21:02:46 2005 UTC (19 years, 2 months ago) by niro
File size: 6107 byte(s)
updated to gentoo ver-0.1.4

1 # Copyright 1999-2004 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3 # $Header: /root/magellan-cvs/src/splashutils-magellan/splash-functions,v 1.2 2005-03-04 21:02:42 niro Exp $
4
5 # Author: Michal Januszewski <spock@gentoo.org>
6 # Maintainer: Michal Januszewski <spock@gentoo.org>
7
8 # This is file is a part of splashutils.
9
10 # This is the main function that handles all events.
11 # Accepted parameters:
12 # svc_start <name>
13 # svc_stop <name>
14 # svc_started <name> <errcode>
15 # svc_stopped <name> <errcode>
16 # svc_input_begin <name>
17 # svc_input_end <name>
18 # rc_init <internal_runlevel> - used to distinguish between 'boot' and 'sysinit'
19 # rc_exit
20 # critical
21
22 splash()
23 {
24 local event="$1"
25 splash_setup
26
27 if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-pre" ]; then
28 /etc/splash/${SPLASH_THEME}/scripts/${event}-pre "$2" "$3"
29 fi
30
31 case "$event" in
32 svc_start) splash_svc_start "$2";;
33 svc_stop) splash_svc_stop "$2";;
34 svc_started) splash_svc "$2" "$3" "start";;
35 svc_stopped) splash_svc "$2" "$3" "stop";;
36 svc_input_begin) splash_input_begin "$2";;
37 svc_input_end) splash_input_end "$2";;
38 rc_init) splash_init "$2";;
39 rc_exit) splash_exit;;
40 critical) /sbin/splash "verbose";;
41 esac
42
43 if [ -x "/etc/splash/${SPLASH_THEME}/scripts/${event}-post" ]; then
44 /etc/splash/${SPLASH_THEME}/scripts/${event}-post "$2" "$3"
45 fi
46
47 return 0
48 }
49
50 splash_setup()
51 {
52 # if it's already setup, let's not waste time on parsing the config files again
53 if [ "${SPLASH_THEME}" != "" ]; then
54 return 0
55 fi
56
57 export SPLASH_THEME="default"
58
59 if [ -f /etc/conf.d/splash ]; then
60 . /etc/conf.d/splash
61 fi
62
63 if [ -f /proc/cmdline ]; then
64 # kernel command line override for the splash theme
65 for param in `grep "theme:" /proc/cmdline`; do
66 t=${param%:*}
67 if [ "${t#*,}" == "theme" ]; then
68 SPLASH_THEME="${param#*:}"
69 fi
70 done
71 else
72 echo "PROC NOT MOUNTED!!!"
73 fi
74 }
75
76 splash_svc_start()
77 {
78 local svc="$1"
79
80 splash_load_vars
81 SPL_SVC_START="${SPL_SVC_START}${svc} "
82 SPL_SVC_INACTIVE_START="${SPL_SVC_INACTIVE_START// $svc / }"
83 splash_save_vars
84
85 /sbin/splash "$svc"
86 }
87
88 splash_svc_stop()
89 {
90 local svc="$1"
91
92 splash_load_vars
93 SPL_SVC_STOP="${SPL_SVC_STOP}${svc} "
94 SPL_SVC_INACTIVE_STOP="${SPL_SVC_INACTIVE_STOP// $svc / }"
95 splash_save_vars
96
97 /sbin/splash "$svc"
98 }
99
100 splash_init()
101 {
102 arg="$1"
103 spl_init=0
104 spl_count=0
105 spl_scripts=0
106 spl_rate=0
107 spl_execed=""
108
109 if [ "${RUNLEVEL}" == "S" ] && [ "${arg}" == "sysinit" ]
110 then
111 #temp=($CRITICAL_SERVICES)
112 #spl_scripts=${#temp[*]}
113 spl_scripts=6
114 spl_rate=16383
115 fi
116
117 if [ "${RUNLEVEL}" == "S" -a "${arg}" == "sysinit" ] ||
118 [ "${RUNLEVEL}" == "6" -o "${RUNLEVEL}" == "0" ]
119 then
120 /sbin/splash "start"
121 fi
122
123 export spl_init spl_count spl_scripts spl_rate spl_execed
124 splash_save_vars
125
126 # if [ "${arg}" != "sysinit" ]
127 # then
128 splash_calc
129 # fi
130 }
131
132 # ----------------------------------------------------------------------
133 # RUNLEVEL SOFTLEVEL INTERNAL SVCS
134 # ----------------------------------------------------------------------
135 # System boot-up:
136 # S <none> sysinit CRITICAL_SERVICES
137 # S boot <none> boot_serv - CRITICAL_SERVICES
138 # 3 default <none> std
139 #
140 # System restart/shutdown:
141 # 0/6 reboot/shutdown <none> all
142
143 splash_calc()
144 {
145 #spl_runs=($(dolisting "/etc/runlevels/${SOFTLEVEL}/"))
146 #spl_runb=($(dolisting "/etc/runlevels/${BOOTLEVEL}/"))
147
148 local my_runlevel
149 my_runlevel="$(grep -i initdefault /etc/inittab | cut -d: -f2)"
150
151 spl_runs=($(ls /etc/rc.d/rcsysinit.d/S*))
152 spl_runb=($(ls /etc/rc.d/rc${my_runlevel}.d/S*))
153
154 spl_scripts=$((${#spl_runs[*]} + ${#spl_runb[*]}))
155 #spl_boot=${#spl_runb[*]}
156
157 # In runlevel boot we already have some services started
158 # if [ "${RUNLEVEL}" = "S" -a "${SOFTLEVEL}" = "boot" ]
159 # if [ "${RUNLEVEL}" = "S" ]
160 # then
161 # spl_started=($(dolisting "${svcdir}/started/"))
162 # spl_scripts=$((${spl_boot} - ${#spl_started[*]}))
163 # spl_init=16383
164 # spl_rate=26213
165 # elif [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ]
166 # elif [ "${RUNLEVEL}" = "6" -o "${RUNLEVEL}" = "0" ]
167 # then
168 # spl_started=($(dolisting "${svcdir}/started/"))
169 # spl_scripts=${#spl_started[*]}
170 # spl_rate=65535
171 # else
172 #spl_init=26213
173 spl_rate=65535
174 # fi
175
176 splash_save_vars
177 }
178
179 splash_svc()
180 {
181 local srv="$1"
182 local err="$2"
183
184 splash_load_vars
185
186 [ -e /etc/conf.d/splash ] && source /etc/conf.d/splash
187
188 # we ignore consolefont errors because it fails when the console is in KD_GRAPHICS mode
189 if [ "${err}" -ne 0 -a "${SPLASH_VERBOSE_ON_ERRORS}" = "yes" -a "${srv}" != "consolefont" ]; then
190 /sbin/splash "verbose"
191 return 1
192 fi
193
194 for i in ${spl_execed}
195 do
196 [ "${i}" = "${srv}" ] && return
197 done
198
199 spl_execed="${spl_execed} ${srv}"
200 spl_count=$((${spl_count} + 1))
201 /sbin/splash "$srv"
202
203 splash_save_vars
204 }
205
206 splash_exit()
207 {
208 if [ "${RUNLEVEL}" = "S" ]; then
209 return 0
210 fi
211
212 if splash_is_silent ; then
213
214 /sbin/splash "verbose"
215
216 # we need to restart consolefont because fonts don't get set when the vc
217 # is in KD_GRAPHICS mode
218 if [ -L "${svcdir}/started/consolefont" ]; then
219 /etc/init.d/consolefont restart 2>/dev/null >/dev/null
220 fi
221 fi
222 }
223
224 splash_is_silent()
225 {
226 if [ -n "`/sbin/splash_util -c getmode 2>/dev/null | grep silent`" ]; then
227 return 0
228 else
229 return 1
230 fi
231 }
232
233 splash_load_vars()
234 {
235 # In sysinit we don't have the variables, bacause:
236 # 1) it's not necessary
237 # 2) the root fs is mounted ro
238 # if [ "${RUNLEVEL}" == "S" -a "${SOFTLEVEL}" != "boot" ]; then
239 # return 0
240 # fi
241
242 [ -e ${svcdir}/progress ] && source ${svcdir}/progress
243
244 #added
245 export spl_execed spl_count spl_scripts spl_rate spl_init
246 }
247
248 splash_save_vars()
249 {
250 # In sysinit we don't have the variables, bacause:
251 # 1) it's not necessary
252 # 2) the root fs is mounted ro
253 # if [ "${RUNLEVEL}" == "S" -a "${SOFTLEVEL}" != "boot" ]; then
254 # return 0
255 # fi
256
257 t="spl_execed=\"${spl_execed}\"\n"
258 t="${t}spl_count=${spl_count}\n"
259 t="${t}spl_scripts=${spl_scripts}\n"
260 t="${t}spl_rate=${spl_rate}\n"
261 t="${t}spl_init=${spl_init}\n"
262 (echo -e "$t" > ${svcdir}/progress) 2>/dev/null
263 }
264
265 # vim:ts=4

Properties

Name Value
svn:executable *