Magellan Linux

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 5 - (show annotations) (download)
Fri Mar 4 18:09:01 2005 UTC (19 years, 1 month ago) by niro
File size: 4732 byte(s)
importet, ver 0.1

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.1 2005-03-04 18:09:01 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 # TODO: add drop-to-verbose-on-error
11
12 # This is the main function that handles all events.
13 # Accepted parameters:
14 # svc_start <name>
15 # svc_stop <name>
16 # svc_started <name> <errcode>
17 # svc_stopped <name> <errcode>
18 # rc_init <internal_runlevel> - used to distinguish between 'boot' and 'sysinit'
19 # rc_exit
20 # critical
21
22 splash()
23 {
24 case "$1" in
25 svc_start) ;;
26 svc_stop) ;;
27 svc_started) splash_svc "$2" "$3" "start";;
28 svc_stopped) splash_svc "$2" "$3" "stop";;
29 rc_init) splash_init "$2";;
30 rc_exit) splash_exit;;
31 critical) /sbin/splash "verbose";;
32 esac
33
34 return 0
35 }
36
37 splash_init()
38 {
39 arg="$1"
40 spl_init=0
41 spl_count=0
42 spl_scripts=0
43 spl_rate=0
44 spl_execed=""
45
46 if [ "${RUNLEVEL}" == "S" ] && [ "${arg}" == "sysinit" ]
47 then
48 #temp=($CRITICAL_SERVICES)
49 #spl_scripts=${#temp[*]}
50 spl_scripts=6
51 spl_rate=16383
52 fi
53
54 if [ "${RUNLEVEL}" == "S" -a "${arg}" == "sysinit" ] ||
55 [ "${RUNLEVEL}" == "6" -o "${RUNLEVEL}" == "0" ]
56 then
57 /sbin/splash "start"
58 fi
59
60 export spl_init spl_count spl_scripts spl_rate spl_execed
61 splash_save_vars
62
63 # if [ "${arg}" != "sysinit" ]
64 # then
65 splash_calc
66 # fi
67 }
68
69 # ----------------------------------------------------------------------
70 # RUNLEVEL SOFTLEVEL INTERNAL SVCS
71 # ----------------------------------------------------------------------
72 # System boot-up:
73 # S <none> sysinit CRITICAL_SERVICES
74 # S boot <none> boot_serv - CRITICAL_SERVICES
75 # 3 default <none> std
76 #
77 # System restart/shutdown:
78 # 0/6 reboot/shutdown <none> all
79
80 splash_calc()
81 {
82 #spl_runs=($(dolisting "/etc/runlevels/${SOFTLEVEL}/"))
83 #spl_runb=($(dolisting "/etc/runlevels/${BOOTLEVEL}/"))
84
85 local my_runlevel
86 my_runlevel="$(grep -i initdefault /etc/inittab | cut -d: -f2)"
87
88 spl_runs=($(ls /etc/rc.d/rcsysinit.d/S*))
89 spl_runb=($(ls /etc/rc.d/rc${my_runlevel}.d/S*))
90
91 spl_scripts=$((${#spl_runs[*]} + ${#spl_runb[*]}))
92 #spl_boot=${#spl_runb[*]}
93
94 # In runlevel boot we already have some services started
95 # if [ "${RUNLEVEL}" = "S" -a "${SOFTLEVEL}" = "boot" ]
96 # if [ "${RUNLEVEL}" = "S" ]
97 # then
98 # spl_started=($(dolisting "${svcdir}/started/"))
99 # spl_scripts=$((${spl_boot} - ${#spl_started[*]}))
100 # spl_init=16383
101 # spl_rate=26213
102 # elif [ "${SOFTLEVEL}" = "reboot" -o "${SOFTLEVEL}" = "shutdown" ]
103 # elif [ "${RUNLEVEL}" = "6" -o "${RUNLEVEL}" = "0" ]
104 # then
105 # spl_started=($(dolisting "${svcdir}/started/"))
106 # spl_scripts=${#spl_started[*]}
107 # spl_rate=65535
108 # else
109 #spl_init=26213
110 spl_rate=65535
111 # fi
112
113 splash_save_vars
114 }
115
116 splash_svc()
117 {
118 local srv="$1"
119 local err="$2"
120
121 splash_load_vars
122
123 [ -e /etc/conf.d/splash ] && source /etc/conf.d/splash
124
125 # we ignore consolefont errors because it fails when the console is in KD_GRAPHICS mode
126 if [ "${err}" -ne 0 -a "${SPLASH_VERBOSE_ON_ERRORS}" = "yes" -a "${srv}" != "consolefont" ]; then
127 /sbin/splash "verbose"
128 return 1
129 fi
130
131 for i in ${spl_execed}
132 do
133 [ "${i}" = "${srv}" ] && return
134 done
135
136 spl_execed="${spl_execed} ${srv}"
137 spl_count=$((${spl_count} + 1))
138 /sbin/splash "$srv"
139
140 splash_save_vars
141 }
142
143 splash_exit()
144 {
145 if [ "${RUNLEVEL}" = "S" ]; then
146 return 0
147 fi
148
149 if splash_is_silent ; then
150
151 /sbin/splash "verbose"
152
153 # we need to restart consolefont because fonts don't get set when the vc
154 # is in KD_GRAPHICS mode
155 if [ -L "${svcdir}/started/consolefont" ]; then
156 /etc/init.d/consolefont restart 2>/dev/null >/dev/null
157 fi
158 fi
159 }
160
161 splash_is_silent()
162 {
163 if [ -n "`/sbin/splash_util -c getmode 2>/dev/null | grep silent`" ]; then
164 return 0
165 else
166 return 1
167 fi
168 }
169
170 splash_load_vars()
171 {
172 # In sysinit we don't have the variables, bacause:
173 # 1) it's not necessary
174 # 2) the root fs is mounted ro
175 # if [ "${RUNLEVEL}" == "S" -a "${SOFTLEVEL}" != "boot" ]; then
176 # return 0
177 # fi
178
179 [ -e ${svcdir}/progress ] && source ${svcdir}/progress
180
181 #added
182 export spl_execed spl_count spl_scripts spl_rate spl_init
183 }
184
185 splash_save_vars()
186 {
187 # In sysinit we don't have the variables, bacause:
188 # 1) it's not necessary
189 # 2) the root fs is mounted ro
190 # if [ "${RUNLEVEL}" == "S" -a "${SOFTLEVEL}" != "boot" ]; then
191 # return 0
192 # fi
193
194 t="spl_execed=\"${spl_execed}\"\n"
195 t="${t}spl_count=${spl_count}\n"
196 t="${t}spl_scripts=${spl_scripts}\n"
197 t="${t}spl_rate=${spl_rate}\n"
198 t="${t}spl_init=${spl_init}\n"
199 (echo -e "$t" > ${svcdir}/progress) 2>/dev/null
200 }
201
202 # vim:ts=4

Properties

Name Value
svn:executable *