freebsd-skq/etc/rc.d/motd
Doug Barton e3c46a3332 Remove $NetBSD$ CVS tags. We no longer attempt to synch our rc.d files
with theirs, so this information doesn't need to be in the live file.
Having it in our CVS history is enough.
2007-12-08 07:20:23 +00:00

50 lines
916 B
Bash
Executable File

#!/bin/sh
#
# $FreeBSD$
#
# PROVIDE: motd
# REQUIRE: mountcritremote
# BEFORE: LOGIN
. /etc/rc.subr
name="motd"
rcvar="update_motd"
start_cmd="motd_start"
stop_cmd=":"
PERMS="644"
motd_start()
{
# Update kernel info in /etc/motd
# Must be done *before* interactive logins are possible
# to prevent possible race conditions.
#
echo -n 'Updating motd'
if [ ! -f /etc/motd ]; then
install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd
fi
if [ ! -w /etc/motd ]; then
echo ' ... /etc/motd is not writable, update failed.'
return
fi
T=`mktemp -t motd`
uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
cmp -s $T /etc/motd || {
cp $T /etc/motd
chmod ${PERMS} /etc/motd
}
rm -f $T
echo .
}
load_rc_config $name
run_rc_command "$1"