aboutsummaryrefslogtreecommitdiff
path: root/sysutils/bsd-splash-changer/files/change_splash.sh.in
diff options
context:
space:
mode:
Diffstat (limited to 'sysutils/bsd-splash-changer/files/change_splash.sh.in')
-rw-r--r--sysutils/bsd-splash-changer/files/change_splash.sh.in72
1 files changed, 72 insertions, 0 deletions
diff --git a/sysutils/bsd-splash-changer/files/change_splash.sh.in b/sysutils/bsd-splash-changer/files/change_splash.sh.in
new file mode 100644
index 000000000000..9e78cda93734
--- /dev/null
+++ b/sysutils/bsd-splash-changer/files/change_splash.sh.in
@@ -0,0 +1,72 @@
+#!/bin/sh
+#
+# /usr/local/etc/rc.d/change_splash.sh * mato [11-feb-2006]
+#
+# PROVIDE: change_splash
+# REQUIRE: mountcritremote
+# KEYWORD: FreeBSD
+#
+# 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.
+#
+
+. %%RC_SUBR%%
+
+name=change_splash
+rcvar=`set_rcvar splash_changer`
+
+start_cmd=${name}_start
+
+: ${splash_changer_enable="NO"}
+: ${splash_changer_file="/boot/splash"}
+: ${splash_changer_dir="%%DATADIR%%"}
+
+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"
+}
+
+load_rc_config $name
+run_rc_command "$1"
+
+# done