]>
Commit | Line | Data |
---|---|---|
90c5ca2a | 1 | #!/bin/bash |
2 | # | |
3 | # bootanim - boot animation wrapper script for fbmngplay | |
4 | # | |
5 | # This program parses /etc/bootsplash/[THEME]/config/bootsplash-XxY.cfg | |
6 | # to determine the correct animation position. | |
7 | # | |
8 | # This program is free software; you may redistribute it under the terms | |
9 | # of the GNU General Public License. This program has absolutely no warranty. | |
10 | # | |
11 | # (C) 2002,2003 SuSE Linux AG. Written by Stefan Reinauer <stepan@suse.de> | |
12 | # | |
13 | # See http://www.bootsplash.org/ for more information. | |
14 | # | |
15 | ||
16 | usage() | |
17 | { | |
18 | echo "usage: $0 [start|stop|kill|next] -m [-r XxY] [-d dir] mng1 [mng2..]" | |
19 | cat << EOF | |
20 | ||
21 | Available commands: | |
22 | start starts given animation | |
23 | stop fades out all running animations | |
24 | kill immediately stops all animations | |
25 | next continue to next animation. | |
26 | ||
27 | Options for use with start command: | |
28 | -r XxY screen resolution to use if unable to autodetect. | |
29 | -d dir directory containing the animation files | |
30 | -m play multiple animations | |
31 | mng1|mng2 animation filename(s). Specify -m if multiple. | |
32 | ||
33 | EOF | |
34 | ||
35 | } | |
36 | ||
37 | if [ "$UID" -ne "0" ]; then | |
38 | echo "$0 must be started as user root!!!" | |
39 | echo "Exiting..." | |
40 | exit 1 | |
41 | fi | |
42 | ||
43 | THEME="No theme selected" | |
44 | [ -f /etc/sysconfig/bootsplash ] && . /etc/sysconfig/bootsplash | |
45 | ||
46 | if [ ! -d /etc/bootsplash/themes/$THEME ] | |
47 | then | |
48 | echo "$0: could not find theme $THEME in /etc/bootsplash/themes." | |
49 | exit 0 | |
50 | fi | |
51 | ||
52 | MODE=$(/bin/fbresolution 2>/dev/null) | |
53 | DIRECTORY=/etc/bootsplash/themes/$THEME/animations | |
54 | OPTIONS="-b -c 1" | |
55 | FILES="" | |
56 | ||
57 | case "$1" in | |
58 | start) | |
59 | # echo "$0 start" | |
60 | # We fall through here. | |
61 | ;; | |
62 | stop) | |
63 | # echo "$0 stop" | |
64 | /bin/killall -q -2 fbmngplay | |
65 | exit 0 | |
66 | ;; | |
67 | kill) | |
68 | # echo "$0 kill" | |
69 | /bin/killall -q fbmngplay | |
70 | exit 0 | |
71 | ;; | |
72 | next) | |
73 | # echo "$0 next" | |
74 | /bin/killall -q -USR1 fbmngplay | |
75 | exit 0 | |
76 | ;; | |
77 | *) | |
78 | usage; | |
79 | echo " Error: illegal parameter."; | |
80 | exit 1 | |
81 | ;; | |
82 | esac | |
83 | ||
84 | shift | |
85 | ||
86 | # We end up in bootanim start | |
87 | while getopts mr:d: name "$@"; do | |
88 | # echo "loop: $*" | |
89 | case "$name" in | |
90 | d) # directory | |
91 | shift | |
92 | if [ ! -d "$OPTARG" ]; then | |
93 | echo "Not a valid directory." | |
94 | exit 1 | |
95 | fi | |
96 | DIRECTORY=$OPTARG | |
97 | shift | |
98 | ;; | |
99 | r) # resolution | |
100 | shift | |
101 | MODE=$OPTARG; | |
102 | shift | |
103 | ;; | |
104 | m) # multiple files | |
105 | shift | |
106 | OPTIONS="$OPTIONS -s" | |
107 | ;; | |
108 | *) # Weird | |
109 | shift | |
110 | echo "Internal Error." | |
111 | exit 1 | |
112 | ;; | |
113 | esac | |
114 | done | |
115 | ||
116 | function box() { true; } # ignore box descriptions in the config file | |
117 | ||
118 | # Sourcing config file | |
119 | if [ -f /etc/bootsplash/themes/$THEME/config/bootsplash-$MODE.cfg ]; then | |
120 | . /etc/bootsplash/themes/$THEME/config/bootsplash-$MODE.cfg | |
121 | else | |
122 | echo "$0: No config file found for theme $THEME ($MODE)." | |
123 | exit 1 | |
124 | fi | |
125 | ||
126 | # echo "Dir: $DIRECTORY" | |
127 | # echo "Files: $*" | |
128 | # echo "Mode: $MODE" | |
129 | # echo "Pos: $ax,$ay" | |
130 | # echo "options: $OPTIONS" | |
131 | ||
132 | CMDLINE="/bin/fbmngplay -x $ax -y $ay $OPTIONS" | |
133 | for i in $*; do | |
134 | CMDLINE="$CMDLINE $DIRECTORY/$i" | |
135 | done | |
136 | ||
137 | eval "$CMDLINE &" |