]> git.pld-linux.org Git - packages/bootsplash.git/blob - bootsplash-bootanim.script
- added init script for activating bootsplash on other consoles
[packages/bootsplash.git] / bootsplash-bootanim.script
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 &"
This page took 0.059896 seconds and 3 git commands to generate.