#!/bin/sh # -*- Mode: shell-script -*- # Copyright (C) 2002 by Chmouel Boudjnah # Redistribution of this file is permitted under the terms of the GNU # Public License (GPL) # $Id$ bootsplashdir=/usr/share/bootsplash sysconfig=/etc/sysconfig/bootsplash bootdir=/boot function list_available_themes () { local basename= for i in $bootsplashdir/themes/*;do basename=${i##*/} echo $basename done } function get_current_theme () { local opt= theme= while read opt ;do [[ $opt != THEME=* ]] && continue theme=${opt##*=} done < $sysconfig [[ -z $theme ]] && theme="Mandrake" echo $theme } function read_link () { perl -e '{print readlink shift, "\n"}' $1 } function lilo_switch_themes () { local theme=$1 local message_from_theme=$bootsplashdir/themes/$theme/lilo/message local message_from_current=$bootdir/lilo/message #checking if [[ ! -f $message_from_theme ]];then return; fi if [[ ! -e $bootdir/lilo ]];then return; fi #Make sure to point on lilo-graphic if [[ -L $bootdir/lilo ]];then point_to=$(read_link $bootdir/lilo) if [[ $point_to != lilo-graphic ]];then rm -f $bootdir/lilo ln -s lilo-graphic $bootdir/lilo fi fi if ! cmp -s $message_from_theme $message_from_current;then cp -f $message_from_theme $message_from_current fi } function check_it () { local theme=$1 local ok= c= for c in $(list_available_themes);do [[ $c == $theme ]] && ok=yes done if [[ -z $ok ]];then echo -e "Themes $theme doen't exist\n"; bash $0 -l exit; fi } function update () { local theme=$1; lilo_switch_themes $theme } function switch_theme () { local toswitch=$1 local current_theme=$(get_current_theme) local ok= c= #Seeding if [[ $current_theme != $toswitch ]];then ok= tmpfile=$(mktemp /tmp/.bootsplash.XXXXXXX) cp -f $sysconfig $tmpfile && rm -f $sysconfig while read line;do if [[ $line == THEME=* ]];then echo "THEME=$toswitch" >> $sysconfig ok=yes continue; fi echo $line >> $sysconfig done < $tmpfile if [[ -z $ok ]];then echo "THEME=$toswitch" >> $sysconfig fi rm -f $tmpfile fi } function usage () { basename=`basename $0` cat <