From 9405c435837a9fe5861b1f1a59bd2885f2eb09ff Mon Sep 17 00:00:00 2001 From: Chmouel Boudjnah Date: Tue, 12 Feb 2002 14:13:06 +0000 Subject: Add switch themes script, add support for lilo themes --- scripts/make-boot-splash | 4 +- scripts/switch-themes | 152 +++++++++++++++++++++++++++++++++++++++++++ themes/Ayo/lilo/message | Bin 0 -> 139684 bytes themes/Mandrake/lilo/message | Bin 0 -> 46856 bytes 4 files changed, 155 insertions(+), 1 deletion(-) create mode 100755 scripts/switch-themes create mode 100644 themes/Ayo/lilo/message create mode 100644 themes/Mandrake/lilo/message diff --git a/scripts/make-boot-splash b/scripts/make-boot-splash index e524606..bdbeca7 100755 --- a/scripts/make-boot-splash +++ b/scripts/make-boot-splash @@ -92,4 +92,6 @@ function write_header() source $config size=`wc -c<$image` write_header $tx $ty $tw $th $size >> $initrd_file -cat $image >> $initrd_file \ No newline at end of file +cat $image >> $initrd_file + +$splash_dir/scripts/switch-themes -u diff --git a/scripts/switch-themes b/scripts/switch-themes new file mode 100755 index 0000000..dea6997 --- /dev/null +++ b/scripts/switch-themes @@ -0,0 +1,152 @@ +#!/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 <