freebsd-ports/sysutils/bsd-splash-changer/files/change_splash.in
Doug Barton 9aac569eaa Move the rc.d scripts of the form *.sh.in to *.in
Where necessary add $FreeBSD$ to the file

No PORTREVISION bump necessary because this is a no-op
2012-08-05 23:19:36 +00:00

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"