178344Sobrien#!/bin/sh
278344Sobrien#
398184Sgordon# $FreeBSD$
478344Sobrien#
578344Sobrien
678344Sobrien# PROVIDE: motd
778344Sobrien# REQUIRE: mountcritremote
898184Sgordon# BEFORE:  LOGIN
978344Sobrien
1078344Sobrien. /etc/rc.subr
1178344Sobrien
1278344Sobrienname="motd"
13298514Slmedesc="Update /etc/motd"
1478344Sobrienrcvar="update_motd"
1578344Sobrienstart_cmd="motd_start"
1678344Sobrienstop_cmd=":"
1778344Sobrien
18121068SdougbPERMS="644"
1998184Sgordon
2078344Sobrienmotd_start()
2178344Sobrien{
2278344Sobrien	#	Update kernel info in /etc/motd
2378344Sobrien	#	Must be done *before* interactive logins are possible
2478344Sobrien	#	to prevent possible race conditions.
2578344Sobrien	#
26197947Sdougb	check_startmsgs && echo -n 'Updating motd:'
2778344Sobrien	if [ ! -f /etc/motd ]; then
2898184Sgordon		install -c -o root -g wheel -m ${PERMS} /dev/null /etc/motd
2978344Sobrien	fi
3098184Sgordon
31121068Sdougb	if [ ! -w /etc/motd ]; then
32179945Smtm		echo ' /etc/motd is not writable, update failed.'
33121068Sdougb		return
34121068Sdougb	fi
35121068Sdougb
36121068Sdougb	T=`mktemp -t motd`
37121068Sdougb	uname -v | sed -e 's,^\([^#]*\) #\(.* [1-2][0-9][0-9][0-9]\).*/\([^\]*\) $,\1 (\3) #\2,' > ${T}
38121068Sdougb	awk '{if (NR == 1) {if ($1 == "FreeBSD") {next} else {print "\n"$0}} else {print}}' < /etc/motd >> ${T}
39121068Sdougb
4098184Sgordon	cmp -s $T /etc/motd || {
4198184Sgordon		cp $T /etc/motd
4298184Sgordon		chmod ${PERMS} /etc/motd
4398184Sgordon	}
4478344Sobrien	rm -f $T
45121068Sdougb
46197947Sdougb	check_startmsgs && echo '.'
4778344Sobrien}
4878344Sobrien
4978344Sobrienload_rc_config $name
5078344Sobrienrun_rc_command "$1"
51