#!/bin/sh # $FreeBSD: head/sysutils/bsd-splash-changer/files/change_splash.in 340872 2014-01-24 00:14:07Z mat $ # # 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"