9aac569eaa
Where necessary add $FreeBSD$ to the file No PORTREVISION bump necessary because this is a no-op
69 lines
1.6 KiB
Bash
69 lines
1.6 KiB
Bash
#!/bin/sh
|
|
|
|
# $FreeBSD$
|
|
#
|
|
# PROVIDE: change_splash
|
|
# REQUIRE: mountcritremote
|
|
#
|
|
# Boot Splash Image Changer * martinko [09-feb-2006]
|
|
#
|
|
# Add the following to /etc/rc.conf[.local] to enable this service:
|
|
#
|
|
# splash_changer_enable="YES"
|
|
# splash_changer_dir (string): Defaults to "%%DATADIR%%".
|
|
# Splash image file is randomly picked up from this directory.
|
|
# splash_changer_file (string): Defaults to "/boot/splash".
|
|
# This is where the image file is copied to.
|
|
|
|
. /etc/rc.subr
|
|
|
|
name=change_splash
|
|
rcvar=splash_changer_enable
|
|
|
|
load_rc_config $name
|
|
|
|
: ${splash_changer_enable="NO"}
|
|
: ${splash_changer_file="/boot/splash"}
|
|
: ${splash_changer_dir="%%DATADIR%%"}
|
|
|
|
start_cmd=${name}_start
|
|
|
|
change_splash_start()
|
|
{
|
|
echo "Changing splash image."
|
|
|
|
local splash_file splash_dir
|
|
local fcount random choice select filename
|
|
|
|
splash_file="${splash_changer_file-"/boot/splash"}"
|
|
splash_dir="${splash_changer_dir-"%%DATADIR%%"}"
|
|
|
|
[ -f "$splash_file" -o ! -e "$splash_file" ] || err 1 "$splash_file is not a file"
|
|
[ -d "$splash_dir" ] || err 2 "$splash_dir is not a directory"
|
|
|
|
if [ "$splash_dir" = "${splash_file%/*}" ]
|
|
then
|
|
fcount="`ls -1 "$splash_dir" | grep -v "^${splash_file##*/}$" | wc -l`"
|
|
else
|
|
fcount="`ls -1 "$splash_dir" | wc -l`"
|
|
fi
|
|
random="`od -A n -D -N 1 < /dev/random`"
|
|
choice="`expr $random % $fcount`"
|
|
select=0
|
|
|
|
[ -z "$choice" ] && err 3 "choice failed"
|
|
|
|
for filename in "$splash_dir"/*
|
|
do
|
|
if [ $select -eq $choice ]
|
|
then
|
|
cp -f "$filename" "$splash_file"
|
|
break
|
|
fi
|
|
select="`expr $select + 1`"
|
|
done
|
|
|
|
debug "Boot splash image changed to $filename"
|
|
}
|
|
|
|
run_rc_command "$1"
|